我想与我的服务器建立TCP连接。 但我每次都得到错误......
与'ws://my.ip:1337 /'的WebSocket连接失败:WebSocket握手期间出错:状态行中未找到响应代码:回显服务器
客户端:
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');
怎么了?
答案 0 :(得分:10)
net.createServer
创建普通TCP服务器,而不是 websocket服务器。 Websockets使用TCP上的特定协议,普通TCP服务器不遵循该协议。浏览器成功通过TCP进行网络级连接,但是它希望紧跟webocket握手,普通TCP服务器不知道如何提供。
要让Node.js服务器侦听websocket连接,请使用ws
module:
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');
});