让我们说我们有鲍勃和爱丽丝:
鲍勃向爱丽丝发出一个问题,如果爱丽丝得到了问题,爱丽丝会回答鲍勃,如果鲍勃得到答案,那么通讯就完成了!情景:
在io.to('alice').emit('question');
期间,alice失去了联系
断开连接,我们使用disconnect
事件并向bob发送通知:
io.to('bob').emit('hey bob alice is disconnected and she did not received your question);
和bob在发射期间突然断开连接并再次重新连接!
它们之间似乎没有实际转移,对吧?我们怎样才能在服务器上捕获这种情况?
socket.io(node.js)上是否存在回调或其他内容,以确保邮件转移到alice或不是?
答案 0 :(得分:2)
是的,您可以使用第二个参数回调来使用确认:
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)
可以创建一个更复杂的方案,但这是所有socket.io支持开箱即用。