2015-08-24 18 views
5

node.js, express ve socket.io üzerine inşa edilmiş küçük bir web sunucum var. Bunun içinde, iki ad alanları kullanıyorum böyle oluşturur: Ben yapmak istiyorum nesocket.io — ad alanı başına maksimum bağlantı sayısını sınırla

lists = io.of('/lists'), 
views = io.of('/view'), 

, /views ad alanındaki bağlantı sayısını kısıtlamak etmektir. Bunu socket.io ile yapmanın bir yolu var mı? Dokümanlara bir göz attım ama orada bir şey yoktu.

Herhangi Bir Fikir Nasıl Yapılır?

Şimdiden teşekkürler!

cevap

3

(gerekirse - sınıfını genişletmek için) Basit bir sayaç yapabilirsiniz: istemci sunucu, kullanımına bağlanmaya çalışmak için devam etmek istiyorsanız:

var lists = io.of('/lists'); 
lists.max_connections = 10; 
lists.current_connections = 0; 

lists.on('connection', function(socket){ 
    if (this.current_connections >= this.max_connections) { 
    socket.emit('disconnect', 'I\'m sorry, too many connections'); 
    socket.disconnect(); 
    } else { 
    this.current_connections++; 
    socket.on('disconnect', function() { 
     this.current_connections--; 
    }); 
    /** something useful **/ 
    } 
}); 

Upd Bunun yerine

socket.conn.close(); 

:

socket.disconnect(); 
+0

iyi bir fikir, edeceksin kontrol ama gitmek görünüyor od! – philipp

+0

@philipp Maksimum bağlantı sayısına eşit olarak değil, eşzamanlı bağlantıların durumuna eşit veya daha büyük bir değerin kontrol edilmesinin gerekli olmadığı düşünülmektedir. Cevabımı değiştirdim. –

+0

cool, işe yarıyor! – philipp

İlgili konular