我在连接 websocket 时遇到问题
Posted
技术标签:
【中文标题】我在连接 websocket 时遇到问题【英文标题】:I'm having trouble connecting websocket 【发布时间】:2021-10-01 05:50:05 【问题描述】:我使用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.
等待一段时间后,客户端会自动关闭。
【问题讨论】:
这能回答你的问题吗? Uncaught InvalidStateError: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state no @Yannick 等待一段时间后,客户端会自动关闭。 这个Socket Test 应用程序(如果你使用的是那个)创建了一个通用的 TCP 服务器,而不是一个 webSocket 服务器。 webSocket 客户端必须连接到 webSocket 服务器。它需要使用 webSocket 连接协议的东西才能成功连接。 【参考方案1】:这个Socket Test 应用程序(如果您正在使用该应用程序)创建一个通用 TCP 服务器,而不是一个 webSocket 服务器。 webSocket 客户端必须连接到 webSocket 服务器。它需要使用 webSocket 连接协议的东西才能成功连接,当你将它指向一个普通的 TCP 服务器时,它会发送它的初始连接请求,但不会收到它期望的响应(webSocket 连接的第一阶段协议),因此永远不会成功连接。
仅供参考,您可以看到基本的 webSocket 服务器是如何工作的 here on MDN,这将向您展示 webSocket 客户端所期望的 webSocket 连接协议示例(您的通用 TCP 服务器不提供)。
【讨论】:
以上是关于我在连接 websocket 时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章