操作系统级别的HTTP.SYS对WebSockets的支持仅限于Win8 / Windows Server 2012 - 我认为这很傻(它应该是Windows更新的一部分,或者是最多的服务包,在我看来)。
这意味着您不能直接使用HttpListener
或ASP.NET的框架支持WebSockets。
但是:至于“是否可能创建WebSocket服务器”-当然...但只有在您自己处理TCP/IP通信或使用第三方库进行通信时才能这样做。 这有点烦人,但并没有听起来那么糟糕。
编辑:经过一些检查,我可以确认此服务器端组件在Windows 7(等等)上不起作用; IsWebSocketRequest
返回false
,即使它是一个带有Connection: Upgrade
和Upgrade:websocket
(等等)标头的WebSocket请求(来自Chrome会话,因为这有所帮助)。
然而,我感到非常惊讶的是客户端部分不起作用,因为:这更简单,且不需要HTTP.SYS(或者至少不需要HTTP.SYS)。 尝试使用它们会引发PlatformNotSupportedException
异常。
ClientWebSocket
在 Win7 等系统上是受支持的,因为它并不依赖于 HTTP.SYS! - Marc Gravell系统中的一些类在System.Net.WebSockets命名空间上受到支持,包括Windows7、WindowsVista SP2和Windows Server 2008。但是,只有客户端和服务器WebSockets的公共实现支持Windows8和Windows Server 2012。在System.Net.WebSockets命名空间中受到支持的类和类元素是抽象类,在应用程序开发人员可以从这些抽象类继承并扩展实际的客户端WebSockets的实现。
换句话说:需要自己实现客户端WebSocket。