2014-10-28 66 views
1

我正在研究一个具有.NET桌面Winform应用程序和Web应用程序(基于REST API和基于HTML/JavaScript的系统UI),我想使用基于REST的托管服务之一(Firebase/Pusher/PubNub)在这些应用程序之间建立基于推送通知的通信,以便任何应用程序上的用户(或外部系统)完成的任何更改应该立即通知其他应用程序。使用Firebase/Pusher/Pubnub在.Net桌面应用程序和Web应用程序之间来回推送通知

根据我的理解,上面提到的托管服务使用像WebSockets这样的机制,它更适合基于浏览器的通信。因此需要了解是否可以使用这些基于REST的托管服务(Firebase/Pusher/PubNub)处理上述情况。

回答

6

Firebase,Pusher和PubNub都提供REST/Web API,允许您发布事件/数据以及在某些情况下查询状态。所有这些服务还提供用于消费和发布数据的实​​时API。

Firebase和Pusher尝试使用WebSockets并回退到基于HTTP的解决方案。 PubNub使用纯粹的基于HTTP的连接。虽然这些都是网络技术,但它们并不依赖网络浏览器。这些技术往往会在其他客户端技术之前被提供并用于浏览器。例如,.NET 4.5有一个WebSocket class

因此,所有这些托管服务解决方案绝对适合您的场景

如果你决定,你不想使用托管服务,你可以看看SignalR这是一部分ASP.NET或XSockets这是一个坚实的.NET解决方案。更多信息请见Real-time Web Technology Guide

+0

感谢leggetter为输入。将尝试这些。在参数(可用性,专业支持,学习曲线,生产稳定性和性能)方面的任何评论来选择其中之一。 – SOUser 2014-10-28 10:05:05

+0

@Souser - 这三者都是专业和生产级平台,拥有专门的支持渠道以及一个用户社区。可用性 - 我会说Pusher是最容易使用的(尽管我曾经在那里工作,所以我认为我有偏见)。 PubNub作为pubsub平台也很容易使用,并且Firebase的学习曲线稍微更陡峭,因为它是一个数据同步平台。有关性能,请参阅这些[实时延迟统计信息](http://www.leggetter.co.uk/real-time-web-technologies-guide/realtime-hosted-service-latency)。在你的用例中,你应该在任何平台上运行10分钟。 – leggetter 2014-10-28 13:46:46

+0

嗨leggetter, 感谢您的帮助,我创建了两个.Net控制台应用程序(一个使用PusherServer,另一个使用PusherClient)。 看起来像我在客户端应用程序丢失的东西,因为虽然我能够连接服务器和发送消息,但我无法接收客户端应用程序中的消息 以下是客户端和服务器示例代码,请帮助我确定我的客户代码 – SOUser 2014-10-30 04:17:20