2017-08-04 117 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'); 
});