我正在为朋友建立一个小型聊天应用程序,但不确定如何及时获取信息,而不是手动或基本上强制刷新页面.
目前,我正在使用简单的AJAX实现这一点,但这有一个缺点,即当一个短计时器过去时经常点击服务器.
在研究长/短轮询时,我遇到了HTML5 WebSockets.这似乎很容易实现,但我不确定是否存在一些隐藏的缺点.例如,我认为WebSockets仅受某些浏览器的支持.我应该注意WebSockets还有其他缺点吗?
既然两种技术似乎都做同样的事情,那么在哪种情况下,人们更愿意使用其中一种?更具体地说,HTML5 WebSockets使AJAX长/短轮询过时,还是有令人信服的理由更喜欢AJAX而不是WebSockets?
我已经看到了用于asp.net MVC聊天应用程序的signalR vs html5 websockets,但它没有100%回答我的问题,因为它基于HTML5 WebSockets,微软可能已经在.NET 4.5中使用他们的WebSocket对象进行了扩展.
我想知道WebSocket功能是否确实与SignalR相同,并且在WebSockets不可用时又回退到长轮询?当然,微软在采用这种技术的方法中会采用与SignalR相同的技术吗?
编辑:
对于其他任何想知道这个的人,我发现这个评论最有助于理解这个场景以及为什么我会使用SignalR:
嗯,他们不是真的.到目前为止,IIS和ASP.NET没有内置任何受支持的WebSockets,因此SignalR项目必须自己构建它.现在微软正在提供管道,SignalR可以轻松切换到使用微软的实现,无论是自己的还是替代.SignalR是一个实现细节的抽象,WebScockets类是实现细节