首页 > 解决方案 > Google Chrome 上的 WebSocket 客户端返回错误 1006

问题描述

我有同样的问题,我是 Node js 的新手,所以我不知道如何解决它。我正在尝试将 WebSocket 服务器连接到端口 8000,并且我正在使用 WSS。我在服务器上没有任何错误,即使没有连接到服务器也运行它仍然给出错误,所以我知道它在客户端。

错误原因是 0 错误代码是 1006(我从 onerror 得到了 e.reason)

我正在使用谷歌浏览器,我不知道它是否适用于其他浏览器。应用程序.js

    http.createServer(function(req, res) {
      res.writeHead(200);
      req.on('data', function(e) {
        res.write(e);
      })
      req.on('close', function() {
        console.log('CONNECTION CLOSED')
      })
    }).listen(8000);

索引.html


<p id="status">Connecting...</p>
<input id="message" />
<button id="submit">Send</button>
<script>
  var s = new WebSocket("wss://StarliteServer.cs641311.repl.run:8000", ["soap", "wamp"]);
  s.onopen = function() {
    document.getElementById("status").innerHTML="Connected";
  }
  document.getElementById("submit").addEventListener("click", function() {
    s.send(document.getElementById("message").value);
  });
  s.onmessage = function(e) {
    alert(e.data);
  }
  s.onclose = function(e) {
    document.getElementById("status").innerHTML = "ERROR: "+e.code
  }
    </script>

标签: javascriptnode.js

解决方案


如果您的浏览器客户端报告关闭代码 1006,那么您应该查看 websocket.onerror(evt) 事件以获取详细信息。

关闭代码 1006 是一个特殊代码,表示连接被浏览器实现异常(本地)关闭。

从以下链接了解更多信息

https://www.rfc-editor.org/rfc/rfc6455#section-7.4.1


推荐阅读