nodejs,websocket连接报错Connection closed before receiving a...

发布于 09-11 18:50 字数 898 浏览 31 评论 0

server

var io = require('socket.io')();
io.on('connection', function(socket) {
   //接受消息
   socket.on('message', function (msg) {
       console.log('receive messge : ' + msg );
   });
   
   //发送消息
   socket.emit('message', 'hello');
   
   //断开连接回调
   socket.on('disconnect', function () { 
       console.log('socket disconnect');
   });
});
io.listen(3000);

client

<script>
 
    window.onload = function () {
        var ws = new WebSocket('ws://localhost:3000');
 
        ws.onopen = function (e) {
            console.log("连接服务器成功");
            ws.send("1");
        }
    }
</script>

报错

index.html:14 WebSocket connection to 'ws://localhost:3000/' failed: Connection closed before receiving a handshake response

请问这是为什么呢? 如何解决呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甩你一脸翔2022-09-18 18:50:22

鬼啊 weex 就怎么整

往日情怀2022-09-18 18:50:22

尝试了一下直接这么写确实会有问题。
是这样的。你服务端用了socket.io这个包。
你客户端也得配套的使用socket.io-client这个包。

例如:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./socket.io.js"></script>
</head>
<body>
    <script>
    window.onload = function () {
        var socket = io('ws://localhost:3000');
 
        socket.on('connect', function(){
            console.log('connect');
        });
    }
    </script>
</body>
</html>

点我访问socket.io-client的github

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文