我想建立一个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');
});