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支持开箱即用。