.Net 4.5在Windows 7上运行的WebSocket服务器?

ste*_*rnr 26 .net windows-7 websocket .net-4.5

我知道Windows 7不支持.Net 4.5的ClientWebSocket类,但可以使用.Net 4.5 API创建在Windows 7上运行的WebSocket服务器吗?

为了让自己更清楚,根据这里这里,看起来甚至在Windows 7上也应该支持.Net 4.5 WebSocket实现的服务器端部分,但运行HttpListener并尝试使用开源WebSocket实现来访问它给我一个"Portocol不支持"的错误

Mar*_*ell 34

对于websockets的操作系统级HTTP.SYS支持仅限于Win8/Windows Server 2012 - 我同意这是愚蠢的(它应该是Windows更新的一部分,或者最多是IMO的服务包).

这意味着您无法HttpListener直接从ASP.NET或ASP.NET 使用WebSockets的框架支持.

但是:至于"是否有可能创建一个WebSocket服务器" - 确定......但只有你自己处理TCP/IP通信,或者使用第三方库.这是一个有点讨厌,但不是那么糟糕,因为它听起来.

编辑:一些检查后,我可以证实,这个服务器端组件不会在Windows 7(ETC)工作; 的IsWebSocketRequest回报false ,即使它是一个网络套接字的请求Connection: UpgradeUpgrade: websocket(ETC)的头文件(在Chrome会话,因为它可以帮助).

然而,我发现客户端部分不起作用,我感到非常惊讶,因为:这更简单,并且(或者至少不需要)涉及HTTP.SYS.试图使用它们会抛出一个PlatformNotSupportedException.

  • @sternr从我的观点来看也很奇怪.我对此非常失望,尤其是*客户端的作品.嗯,实际上我也没有对服务器端的部件感到失望. (7认同)
  • 是的,老实说,谁认为这确实是一个技术问题. (4认同)
  • 客户端和服务器端的部分都依赖于操作系统级别的组件(websocket.dll),而且这个组件只与Windows 8/Server 2012一起提供.我不确定为什么这个组件不能运行下层,而是依赖解释你所看到的行为. (2认同)

Dre*_*kes 6

正如Marc所说,Microsoft API在Windows 7上不起作用.但是有几个开源库支持Windows 7上的WebSockets,在某些情况下甚至可以通过Mono跨平台.