【问题标题】:.Net 4.5 WebSocket Server Running on Windows 7?.Net 4.5 WebSocket 服务器在 Windows 7 上运行?
【发布时间】:2012-08-17 21:30:28
【问题描述】:

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

为了让自己更清楚,根据herehere,看起来即使在 Windows 7 上也应该支持 .Net 4.5 WebSocket 实现的服务器端部分,但运行 HttpListener 并尝试访问它使用开源 WebSocket 实现时出现“不支持 Portocol”错误

【问题讨论】:

  • 虽然这是一个有趣的问题,但并不费力。你试过什么?根据 MSDN,确实只支持 Windows 8 和 Server 2012。您需要 .NET 内置支持吗?否则有各种第三方库可以满足您的要求。

标签: .net windows-7 websocket .net-4.5


【解决方案1】:

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

这意味着您不能直接使用来自HttpListener 或 ASP.NET 的框架对 WebSockets 的支持。

但是:至于“是否可以创建 WebSocket 服务器”-当然……但前提是您自己处理 TCP/IP 通信,或者使用第 3 方库。这有点烦人,但并不像听起来那么糟糕。

编辑:经过一些检查,我可以确认此的服务器端组件在 Windows 7(等)上工作; IsWebSocketRequest 返回 false 尽管这是一个带有 Connection: UpgradeUpgrade: websocket (等)标头的网络套接字请求(来自 Chrome 会话,因为它有帮助)。

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

【讨论】:

  • @sternr 我不认为他们是;我认为它会在运行时出错。更有趣的是:我的印象是ClientWebSocket在Win7等上支持,因为它不依赖于HTTP.SYS!
  • @sternr 对此进行了更多研究/测试;答案立场。
  • @sternr 从我的角度来看,这也很奇怪。我对此感到非常失望,尤其是客户端部分。嗯,不,实际上我也对服务器端的部分感到失望。
  • 客户端和服务器端部分都依赖于操作系统级别的组件 (websocket.dll),并且该组件仅随 Windows 8 / Server 2012 提供。我不确定为什么会这样组件无法在下层运行,但依赖项解释了您所看到的行为。
  • 是的,老实说,谁认为这是真的技术问题。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    引用System.Net.WebSockets documentation

    System.Net.WebSockets 命名空间中的一些类是 在 Windows 7、Windows Vista SP2 和 Windows Server 2008 上受支持。 但是,客户端和服务器的唯一公共实现 Windows 8 和 Windows Server 2012 支持 WebSocket。 System.Net.WebSockets 命名空间中的类和类元素 在 Windows 7、Windows Vista SP2 和 Windows Server 2008 上受支持 是抽象类。这允许应用程序开发人员继承 并通过实际实现来扩展这些抽象类 客户端 WebSockets。

    换句话说:DIY 实际实现。

    【讨论】:

      猜你喜欢
      • 2013-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      • 2021-06-06
      • 1970-01-01
      相关资源
      最近更新 更多