SignalR还是Websocket?哪一个用于构建基于Web的聊天应用程序?

时间:2013-04-11 08:37:22

标签: html5 http websocket signalr signalr-hub

我要为Mobile构建一个基于Web的聊天信使。为此,我希望我的服务器和客户端之间的通信打开,以便服务器可以在没有客户端请求的情况下推送消息。我发现SignalR和Websockets适合这个。但我不确定使用哪一个。

2 个答案:

答案 0 :(得分:1)

根据客户端和浏览器支持的内容,SignalR使用Web套接字,长轮询,服务器发送事件或永久帧,以在应用程序中启用实时功能。您应该考虑使用它来避免兼容性问题,并获得可用于开发实时应用程序的其他功能。有关更多详细信息,请参阅以下文档:

  

https://github.com/SignalR/SignalR/wiki

答案 1 :(得分:0)

答案是取决于。 这取决于你的规模,我不是说SignalR很难缩放。它是关于在手机上支持SignalR客户端库的。

我们已经使用了信号器一段时间,面对许多头部,然后回到原始的网页插座。

根据我的经验:

1- SignalR不支持xamarin客户端上的Websocket。 (因为它使用System.Net.WebSockets中的类型,这个命名空间是not available in any PCL profiles),他们不打算很快添加它(我在github上联系它们)。 并且你可能没有其他解决方案(长轮询或永久帧和...消耗的内存比WebSockets多5倍)。

2-它提供了对实际传输的可控制控制,这将在处理打盹模式,屏幕锁定等时使您在移动设备上遇到大麻烦.... (有这些情况的解决方法,但它们基本上非常脏)。

作为结论,我认为对于移动设备,如果你有时间使用原始的System.Net.WebSockets,它是以单声道(根据James james montemagno所说)和主要.net实现的。否则你可以使用已停止使用的Microsoft.WebSockets nuget包。