【发布时间】:2018-06-07 05:16:57
【问题描述】:
我希望这里的帖子不会太离题。
我有一个 asp.net webAPI 服务,它提供了许多路由来获取接近实时的数据(例如,在 10 秒内),这需要客户端应用程序轮询更改。
我正在研究哪种技术最适合添加“选择加入”推送通知服务,该服务只是推送“精简”有效负载以告诉客户端应用程序现在是时候调用现有 REST 路由进行更新了。这样一来,推送负载很小,并且不包含任何安全敏感数据(它仍然使用现有的 REST 安全基础架构来获取)
基于云的消息传递
以前,有人告诉我,对于移动应用程序,我应该使用 Firebase cloud messaging 之类的东西,或其他一些消息服务,但这似乎不是我所说的“基于订阅的通知”的正确解决方案这里。我当然可以看到这会很有用,如果客户端在 iOS 或 Android 设备上,并且想要消息/通知/警报(等),当应用程序未运行时也可以工作,但这似乎不正确使用这些更改数据的通知(可能一直发生,有时每 5 秒发生一次)。此外,我不想只针对这些移动设备,还可以针对 Web 或桌面应用程序,它们也可能使用相同的 REST 服务
其他技术
我看到提到Web sockets,或者在asp.net 的情况下,使用SignalR 的选项(它将包装Web 套接字,带有后备)。 SignalR 看起来不错,但我担心的是非 Web/Windows 应用程序(例如 iOS、Android)的客户端库的可用性。我也在看Rest Hooks。这些看起来很有趣,但我不太清楚实际的“推送机制”是什么;看起来他们需要使用 HTTP 向订阅者发布,这意味着订阅者还必须充当“服务器端点”。
在对此有任何想法/最佳实践之后,或者其他人使用了什么?
特别是(验证或其他),对于这个用例,使用基于云的消息传递不是正确的使用方式,因为这些推送通知的频率很高(即我的服务器通过另一个服务器访问应用程序的地方)推送到设备/应用程序的第 3 方服务)
提前感谢您的任何建议!
【问题讨论】:
-
实际上,对于基于 Web 的项目,我会选择 service-worker。如果您想针对每个平台,那么 Azure 通知中心就是一个机会。如果你不需要在后台接收通知,那么像 RabbitMQ 这样的消息队列就可以做到
标签: asp.net rest asp.net-web-api