对于我的一个应用程序,我使用 socket.io 实现了 Web 套接字并托管在 IIS 中。目前套接字连接有助于在客户端(React)和服务器(node.js)之间提供两种方式的连接。
正如我所提到的,我已在 IIS 中托管了我的应用程序。我对打开或关闭 Windows 功能 -> Internet 信息服务 -> 万维网服务 -> 应用程序开发功能 -> WebSocket 协议没有什么疑问。我在没有启用此功能的情况下测试了我的应用程序,它工作正常,但我想确认以下内容。
我真的需要启用 WebSocket 协议功能才能使 websocket 在我的应用程序中工作吗?如果是这样,现在如何在不启用的情况下正常工作(我还没有进行性能和压力测试,我可能会遇到这方面的问题)。
如果我不启用此功能怎么办?简而言之,这个功能的实际用途是什么?
如果有人回答上述问题将会很有帮助。预先感谢。
WebSocket 作为 HTTP 堆栈的一部分需要在 Windows 上准备好很多东西(跨多个组件),所以希望这个答案能有所帮助。
因此,HTTP.sys 中默认启用 WebSocket 支持,如果您的框架 (socket.io) 没有依赖项,则不需要 IIS 模块。
请注意,“摘要”部分提供了几个有用的链接,
同一篇文章还揭示了 IIS WebSocket 模块 与socket.io冲突。
另请注意,如果您通过 HttpPlatformHandler 托管 Node.js Web 应用程序,则 IIS WebSocket 模块是必需的(或者 HttpPlatformHandler 无法将 WebSocket 流量转发到 Node.js)。