socket.io:如何控制和检查消息stream?

可以说我们有鲍勃和爱丽丝:

鲍勃向爱丽丝发送一个问题,如果爱丽丝得到这个问题,爱丽丝将回答鲍勃,如果鲍勃得到答案,通信完成!

场景:

io.to('alice').emit('question'); 爱丽丝失去了她的连接,并断开连接,我们使用disconnect事件,并发送通知给鲍勃: io.to('bob').emit('hey bob alice is disconnected and she did not received your question); 在发射过程中突然断开连接并重新连接! 它们之间似乎没有任何实际的转移,对吗?我们怎么能在服务器上捕捉到这种场景呢?

socket.io(node.js)中是否存在任何callback或者其他东西,使我确信消息传递给爱丽丝?

是的,您可以使用第二个参数callback来使用确认:

 socket.emit('ferret', 'tobi', function (data) { // emit console.log(data); // got callback (ack) }); socket.on('ferret', function (name, fn) { // receive fn('woot'); // execute ack callback }); 

http://socket.io/docs/#sending-and-getting-data-(acknowledgements)

可以创build更复杂的scheme,但这是所有的socket.io支持开箱即用。