2016-03-19 13 views

cevap

2

Evet, düzgün bir şekilde uygulandığında, bir tarayıcı yenilemesi sunucuda disconnect olayına neden olur. Bunu basit bir test uygulamasıyla doğruladım.

disconnect olay io olay değil, bir socket olaydır. Yani, io seviyesinde değil, sokete kayıt olmanız gerekmektedir.

Bu benim test sunucuda gayet güzel çalışıyor benim olay işleyicisi geçerli:

io.on('connection', function(socket) { 
    socket.on('disconnect', function() { 
     console.log("disconnect: ", socket.id); 
    }); 
}); 

Bilginize, soket kendini kapatmaya gerek yoktur. Bir sayfa yenilendiğinde veya gezinildiğinde her webSocket/socket.io bağlantısı otomatik olarak kapatılacağı için bu otomatik olarak gerçekleşir.

+0

Firefox ile ilgili bir sorun olduğunu okudum: https://groups.google.com/forum/?fromgroups=#!topic/socket_io/j7mxtHd4n3A ... Bunun 2012 olduğunu biliyorum, ancak sorun konusunda izleyici diğerleri benzer sorunları olan. İlişkili olabilir, bu gece Chrome'da test edecek. – BugHunterUK

+0

@BugHunterUK - Cevabıma ne eklediğimi görün. Sorununuz, 'bağlantı kesme' olayının 'io' seviyesinde değil, 'soketin' kendisinde gerçekleşmesidir. Yani, 'socket' ('bağlantıyı kes,'), '' değil '' ('bağlantıyı kes,'). – jfriend00

+0

@BugHunterUK - Test sayfam ve test sunucusunda Firefox'ta bağlantı kesilmesi olayı bir sayfa yenilemede doğru şekilde uygulandığında sorun olmaz. – jfriend00

İlgili konular