2017-08-04 118 views

回答

1

它看起来并不像socket.connect()或socket.open()方法需要一个ACK说法。一旦建立了来自客户端的连接,我通常会从服务器发出“已连接”事件。您可以接收这种排放并根据需要添加您的行为。

server.js

io.on('connect', function(socket) { 
    socket.emit('connected'); 
}); 

client.js

socket.on('connected', function() { 
    console.log('Connected'); 
}); 
+0

真的是没有理由的'connected'事件发送到客户端。客户已经有这样的事件。在连接时发送消息的主要原因是您想要在连接后立即将数据发送到客户端。你不需要告诉客户端它现在已经连接 - socket.io框架已经做到了。 – jfriend00

1

还有就是你可以为connect事件发送没有具体的ACK数据。当服务器收到连接时,您可以给.emit()发送一条消息给客户端。

//client.js 
socket.on('connect',() => { 
    console.log('client connected'); 
}); 

socket.on('welcome', function(data) { 
    console.log(data); // 'lol' 
}); 

//server.js 
io.on('connect', (socket) => { 
    // send welcome message upon connect 
    socket.emit('welcome', 'lol'); 
});