我在连接 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 服务器未提供)。