服务器
var io = require('socket.io'),
UUID = require('node-uuid'),
gameport = 3000;
var db = {
waiting_clients: []
};
var logic = {
};
var sio = io.listen(gameport);
sio.sockets.on('connection', function(socket){
var client = {
id: UUID()
};
socket.emit('news', client);
console.log(client.id);
db.waiting_clients.push(client);
});
测试客户:
var net = require('net');
var client = net.connect({port: 3000},
function(e) { //'connect' listener
console.log('client connected');
client.end();
});
在测试客户端控制台中,它显示“客户端已连接”。但是服务器控制台中没有输出
答案 0 :(得分:1)
您必须使用socket.io客户端连接到socket.io服务器。您的代码显示您正在尝试与socket.io服务器建立通用TCP连接。那样不行。将建立最低级别的连接,但是初始协议握手将失败,socket.io服务器将断开连接,您将永远不会获得连接事件。
Socket.io有自己的建立在webSocket之上的连接方案,它建立在HTTP之上,建立在TCP之上。
因此,要连接到socket.io服务器,必须使用同时运行socket.io和webSocket协议的socket.io客户端,而不是普通的TCP套接字。