Websocket错误:Websocket握手过程中出现错误:状态行中没有找到响应代码



我想建立一个tcp连接到我的服务器。但是我每次都出错…

WebSocket连接到'ws://my。ip:1337/' failed: WebSocket握手时出现错误:状态行中没有找到响应代码:Echo server

客户:

 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 serverrn');
   socket.pipe(socket);
   console.log('request');
   });
   server.listen(1337, 'my.ip');

net.createServer创建一个普通TCP服务器,而不是一个websocket服务器。Websockets在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');
});

最新更新