Web Socket:需要为 Socket.io 启用 IIS WebSocket 协议功能?

Web Socket: IIS WebSocket Protocol feature need to be enabled for Socket.io?

对于我的一个应用程序,我使用 socket.io 实现了 Web 套接字并托管在 IIS 中。当前套接字连接有助于在客户端 (React) 和服务器 (node.js) 之间提供双向连接。

正如我提到的,我已经在 IIS 中托管了我的应用程序。我对打开或关闭 Windows 功能 -> Internet 信息服务 -> 万维网服务 -> 应用程序开发功能 -> WebSocket 协议毫无疑问。我已经在未启用此功能的情况下测试了我的应用程序,它工作正常,但我想确认以下内容。 WebSocket Protocol

  1. 我真的需要启用 WebSocket 协议功能才能使 websocket 在我的应用程序中工作吗?如果是这样,它现在如何在不启用的情况下正常工作(我没有进行性能和压力测试,我可能会遇到这方面的问题)。

  2. 如果我不启用此功能怎么办?总之这个功能的实际用途是什么?

如果有人回答上述问题,将会有所帮助。提前致谢。

作为 HTTP 堆栈一部分的 WebSocket 需要在 Windows(跨多个组件)上准备好一堆东西,所以希望这个答案能有所帮助。

  • HTTP.sys,Windows OS 中的驱动程序已升级,以支持协议所需的必要数据包通信。
  • IIS WebSocket 模块,许多其他 Microsoft 框架(如 SignalR)所依赖的 IIS 扩展。

因此 HTTP.sys 中默认启用 WebSocket 支持,如果您的框架 (socket.io) 不依赖 IIS 模块,则不需要 IIS 模块。

Note that the "Summary" section provides several useful links,

https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-8/iis-80-websocket-protocol-support#summary

and the same article also reveals that IIS WebSocket module has conflicts with socket.io.