websocket出问题时的解决方案

163 阅读1分钟

websocket在不同的电脑上会出现不同的问题,即在有的电脑上不获取错误刷新之后不会报错,而在有的电脑上不获取错误则会报错,因此倘若在输出来,且能够正常添加数据之后,如若出现刷新出现错误,则需要在页面的最下方获取错误

即在dom页面中写入以下:

  ws.addEventListener("error", () => {
       console.log("异常");
  });

以及后端页面:ws.createServer里面再次获取一次错误

即:

 conn.on("error", () => {
     console.log("异常");
 })

因此页面中完整的代码是

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
</head>

<body>
    <input type="text" value="" placeholder="请输入聊天内容" autocomplete="off" />
    <button>提交</button>
    <div id="messageBox"></div>
    <script>
        const ws = new WebSocket("ws://127.0.0.1:3000");
        const btn = document.querySelector("button");
        const messageBox = document.querySelector("#messageBox");
        const inputValue = document.querySelector("input");

        btn.addEventListener("click", () => {
            ws.send(inputValue.value);
        });
        ws.addEventListener("open", () => {
            console.log("我连接成功了");
        });
        ws.addEventListener("message", (e) => {
            console.log(e.data);
            var dv = document.createElement("div");
            dv.innerText = e.data;
            messageBox.append(dv);
        });
        ws.addEventListener("error", () => {
            console.log("异常");
        });
    </script>
</body>

</html>

后端页面中完整的代码是

const ws = require('nodejs-websocket');
const port = 3000
const server = ws.createServer((conn) => {
    console.log("有人连接这个服务了");
    conn.on("text", result => {
        console.log(result);
        conn.send(result)
    })
    conn.on("error", () => {
        console.log("异常");
    })
})
server.listen(port, () => {
    console.log("websocket服务已启动,正在监听" + port);
})