2012-03-29 20 views
9

Nodejs and Socket.io kullanıyorum. İstemci bağlandığında, yeni JavaScript nesneleri oluşturulur.Bağlantı soketindeki nesneleri çıkarın. Soket.io

Bu nesneler sonsuza kadar sürebilir mi? İstemcinin bağlantısı kesildiğinde silinmeli mi yoksa kaldırılmalı mı? Bir nesneyi kaldırmak bile mümkün mü? Biliyorum işe yaramaz ...

Teşekkürler - Bu genel bir soru daha fazla ve herhangi bir öneri gerçekten yardımcı olacaktır sanırım.

Teşekkürler!

cevap

17

Eğer temizlik yapmazsanız, evet, sonsuza dek orada kalarak, onları global hale getirdiğinizi sanıyorum.

Sen temizleme disconnect olay dinleyicisi bağlanarak bir kullanıcının bağlantısını kesmeden kez olmalıdır:

var clients = {} 
sockets.on('connection', function(socket) { 
    clients[socket.id] = socket; 

    socket.on('disconnect', function() { 
    delete clients[socket.id]; 
    }); 
}); 
+1

modelini kullanmaya devam ediyor, teşekkürler! Aynı nesneyi diğer nesnelerin kaydını tutmak için de kullanabilirim? Oluşturulan 'soket' işlevselliğinin dışında başka birçok nesne vardır. – dzm

+0

jup! Bazı insanlar ne yaparlar, "soket" değişkeni içindeki nesneleri eklerler ve otomatik olarak yok olurlar. socket.data = "foo" 've sonra istemcilerin sadece bu sokete bir kimliği vardır. –

+0

Mükemmel, bu iyi bir fikir. Tekrar teşekkürler! – dzm

0

i kabul cevap gerçekten problem çözme değil düşünüyorum. yapmanız:

io.on('connection', function(socket){ 
    socket.on('event', function(){ 
     console.log('event fired'); 
    }); 
    socket.on('disconnect', function(){ 
     console.log('user disconnected'); 
    }); 
}); 

soket olayları dinleyici io.on içinde oluşturulan() 'ın geri arama. socket.io içten io.on içindeki tüm eventlisenters kaldırmak() callback'inde sürece

socket.on('disconnect', function(){ 
    delete socket.namespace.sockets[this.id]; 
    console.log('user disconnected'); 
}); 

: kopukluk sonra bu olaylar dinleyiciler gerçekten sözde böyle bir şey yapmak .. uzaklaştırılamaz. Eventlisteners,

+0

silme katı modda izin verilmez, bunun için başka bir yol var mı? –

İlgili konular