我见过signalR vs html5 websockets for asp.net MVC chat application,但它没有100%回答我的问题,因为它基于HTML5 WebSockets,微软可能已经在.NET 4.5中使用他们的WebSocket对象进行了扩展。
我想知道WebSocket功能是否确实与SignalR相同,并且在WebSockets不可用时又回退到长轮询?当然,微软在采用这种技术的方法中会采用与SignalR相同的技术吗?
编辑:
对于其他任何想知道这个的人,我发现这个评论最有助于理解这个场景以及为什么我会使用SignalR:
嗯,他们不是真的。到目前为止,IIS和ASP.NET没有内置任何受支持的WebSockets,因此SignalR项目必须自己构建它。现在微软正在提供管道,SignalR可以轻松切换到使用微软的实现,无论是自己的还是替代。 SignalR是一个实现细节的抽象,WebScockets类是实现细节
我认为SignalR是要走的路,并且无论如何都将成为.NET本身的一部分(并且可能扩展/合并/替换web-socket支持)。它在支持时使用Web套接字,并且当它不支持时使用一致的客户端轮询黑客,因此,它是要走的路。
更新:
由于这个答案仍然被提升,值得一提的是SignalR现在正式成为ASP.NET的一部分。
更新:.NET Core
正如@yazanpro在评论中指出的那样,SignalR也被添加到.NET Core中。
SignalR使用OWIN,如果浏览器支持Web套接字,则使用WebSockets连接;如果浏览器不支持WebSockets,则使用长轮询。