我正在开发一个具有.NET桌面Winform应用程序和Web应用程序(使用REST API和基于HTML / JavaScript的UI)的系统,我想使用一个基于REST的托管服务(Firebase / Pusher / PubNub) )在这些应用程序之间建立基于推送通知的通信,以便用户(或外部系统)对任何一个应用程序所做的任何更改应立即通知另一个应用程序。
根据我的理解,上面提到的托管服务使用WebSockets等机制,这些机制更适合基于浏览器的通信。因此需要了解是否可以使用这些基于REST的托管服务(Firebase / Pusher / PubNub)处理上述场景。
答案 0 :(得分:6)
Firebase,Pusher和PubNub都提供了一个REST / Web API,允许您发布事件/数据,在某些情况下还可以查询状态。所有这些服务还提供了用于使用和发布数据的实时API。
Firebase和Pusher尝试使用WebSockets并回退到基于HTTP的解决方案。 PubNub使用纯粹的基于HTTP的连接。虽然这些是Web技术,但它们并不依赖于Web浏览器。这些技术倾向于在其他客户端技术之前提供并在浏览器中使用。例如,.NET 4.5有一个WebSocket class。
所以,所有这些托管服务解决方案都非常适合您的场景。
如果您决定不想使用托管服务,可以查看ASP.NET中的SignalR或XSockets这是一个可靠的.NET解决方案。有关详情,请参阅Real-time Web Technology Guide。
答案 1 :(得分:0)