我在连接 websocket 时遇到问题
I'm having trouble connecting websocket
我使用 SocketTest v 3.0.0
程序创建了一个服务器。
我尝试用 JavaScript 连接到我自己的服务器,
当 undefined 出现在控制台中时,我从 javaScript 客户端收到一条消息;
留言是;
GET / HTTP/1.1
Host: 127.0.0.1:9090
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4655.6 Safari/537.36
Upgrade: websocket
Origin: chrome://new-tab-page
Sec-WebSocket-Version: 13
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,tr-TR;q=0.8,tr;q=0.7
Sec-WebSocket-Key: yeTxrheLM3XMmBowpT5DhQ==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
当我 运行 ws.send("hello server")
我得到这个错误;
Uncaught DOMException: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.
等待一段时间后,客户端自动关闭。
此 Socket Test 应用程序(如果您正在使用该应用程序)创建通用 TCP 服务器,而不是 webSocket 服务器。 webSocket 客户端必须连接到 webSocket 服务器。它需要使用 webSocket 连接协议的东西才能成功连接,当您将它指向普通 TCP 服务器时,它会发送它的初始连接请求,但不会收到它期望的响应(webSocket 连接的第一阶段协议),因此永远不会成功连接。
仅供参考,您可以了解基本的 webSocket 服务器如何工作 here on MDN,这将向您展示 webSocket 客户端期望的 webSocket 连接协议示例(您的通用 TCP 服务器未提供)。
我使用 SocketTest v 3.0.0
程序创建了一个服务器。
我尝试用 JavaScript 连接到我自己的服务器,
当 undefined 出现在控制台中时,我从 javaScript 客户端收到一条消息;
留言是;
GET / HTTP/1.1
Host: 127.0.0.1:9090
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4655.6 Safari/537.36
Upgrade: websocket
Origin: chrome://new-tab-page
Sec-WebSocket-Version: 13
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,tr-TR;q=0.8,tr;q=0.7
Sec-WebSocket-Key: yeTxrheLM3XMmBowpT5DhQ==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
当我 运行 ws.send("hello server")
我得到这个错误;
Uncaught DOMException: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.
等待一段时间后,客户端自动关闭。
此 Socket Test 应用程序(如果您正在使用该应用程序)创建通用 TCP 服务器,而不是 webSocket 服务器。 webSocket 客户端必须连接到 webSocket 服务器。它需要使用 webSocket 连接协议的东西才能成功连接,当您将它指向普通 TCP 服务器时,它会发送它的初始连接请求,但不会收到它期望的响应(webSocket 连接的第一阶段协议),因此永远不会成功连接。
仅供参考,您可以了解基本的 webSocket 服务器如何工作 here on MDN,这将向您展示 webSocket 客户端期望的 webSocket 连接协议示例(您的通用 TCP 服务器未提供)。