2016-05-18 50 views
1

可以說我們有鮑勃和愛麗絲:socket.io:如何控制和檢查消息流?

鮑勃向愛麗絲髮送一個問題,如果愛麗絲得到的問題,愛麗絲會迴應鮑勃,如果鮑勃得到答案通信完成!

場景:

期間io.to('alice').emit('question');愛麗絲失去她的連接和斷開 ,我們使用disconnect事件併發送通知給Bob: io.to('bob').emit('hey bob alice is disconnected and she did not received your question);和發射過程中突然鮑勃斷開,再插! 它們之間似乎沒有任何實際的轉移,對嗎?我們如何能夠在服務器上捕捉到這種場景?

socket.io(node.js)中是否存在任何回調或存在的東西使我確信消息傳遞給愛麗絲?

回答

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