Websocket错误:WebSocket握手期间发生错误:状态行中未找到响应代码

7
我想要与我的服务器建立TCP连接。 但每次都会出现错误...

WebSocket连接到'ws://my.ip:1337/'失败:WebSocket握手期间发生错误:状态行中没有找到响应代码:Echo服务器

客户端:
 var connection = new WebSocket('ws://my.ip:1337'); 
 connection.onopen = function () {
 connection.send('Ping'); // Send the message 'Ping' to the server
 };

服务器:

   var net = require('net');
   var server = net.createServer(function (socket) {
   socket.write('Echo server\r\n');
   socket.pipe(socket);
   console.log('request');
   });
   server.listen(1337, 'my.ip');

有什么问题吗?
1个回答

10
net.createServer 创建的是一个普通的 TCP 服务器,而不是 WebSocket 服务器。WebSocket 使用的是 TCP 上的特定协议,普通的 TCP 服务器不遵循该协议。浏览器成功地通过 TCP 进行网络级连接,但它随后期望立即进行 WebSocket 握手,而普通的 TCP 服务器不知道如何提供此握手。
要使您的 Node.js 服务器侦听 WebSocket 连接,请使用 ws 模块
var WebSocketServer = require('ws').Server
  , wss = new WebSocketServer({port: 1337});
wss.on('connection', function(ws) {
    ws.on('message', function(message) {
        ws.send('this is an echo response; you just said: ' + message);
    });
    ws.send('send this message on connect');
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接