我真的不明白 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 连接有什么用?