![如何配置 IIS 以便由外部程序处理 websocket 连接?](https://linux22.com/image/780051/%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%20IIS%20%E4%BB%A5%E4%BE%BF%E7%94%B1%E5%A4%96%E9%83%A8%E7%A8%8B%E5%BA%8F%E5%A4%84%E7%90%86%20websocket%20%E8%BF%9E%E6%8E%A5%EF%BC%9F.png)
我真的不明白 websocket 是如何配置的,以及预期如何在服务器上工作。
就我而言,我有一台运行 IIS 的计算机 (Windows 10)。我想在那台机器上放置我自己的 websocket 服务器应用程序 (WS-Server.exe),它应该接受来自我的客户端 web 应用程序 (WS-Client) 的 websocket 连接。
在没有 IIS 参与的情况下完成所有这些工作localhost
是非常简单的 - 只需让 WS-Server.exe 监听某个特定端口,例如5004
,并让 WS-Client(Web 应用程序)连接到ws://127.0.0.1:5400
。
但现在我想部署它并使其可通过互联网访问,而这正是我迷路的地方。我了解 Websocket 握手可以通过对端口 80 上的 IIS 进行常规 HTTP 调用来进行,然后 IIS 会将连接“升级”为 websocket 连接如果 IIS 配置正确。
如何正确配置 IIS 以启用 websockets?我尝试按照微软网站在 IIS 中启用 Websockets,但我不确定这是否是所需的全部?当我尝试
127.0.0.1:80
从 WS-Client 连接到时,我收到一条错误消息Error during WebSocket handshake: Unexpected response code: 200
。据我了解,websocket“HTTP 升级”响应应该有响应代码101
?所以看起来 IIS 只是在提供普通网页?我如何告诉 IIS 我希望所有 websocket 连接都转到在同一台计算机上运行的 WS-Server.exe?我是否需要告诉 IIS 我希望以
5004
某种方式用作 websocket 端口?似乎我找到的所有指南中都缺少这一步,我不明白 - 如果服务器计算机上没有运行某些东西来实际发送数据,那么 websocket 连接有什么用?