WebSocket错误:在WebSocket握手期间出错:没有在状态行中find响应代码

我想做一个tcp连接到我的服务器。 但是我每次都遇到错误…

到'ws://my.ip:1337 /'的WebSocket连接失败:WebSocket握手期间出错:在状态行中没有find响应代码: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'); 

怎么了 ?

net.createServer创build一个普通的TCP服务器 ,而不是一个websocket服务器 。 Websockets通过TCP使用特定的协议,普通的TCP服务器不遵循这个协议。 浏览器成功通过TCP进行networking级别的连接,但是接下来需要一个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'); });