2014-06-17 7 views
24

Bir web uygulaması için socket.io ve Mean yığınını kullanıyorum. Bunlardan io.on ('bağlantı', ...) vs io.sockets.on ('bağlantı', ...)

var http = require('http').createServer(app); 
http.listen(3006); 
var io = require('socket.io').listen(http); 

İkisi

bağlantıda çalışmıyor gibi görünüyor .. 3006 bağlantı noktasında soket için sunucuyu başladı.

io.on('connection', function (socket) { 
    console.log('Socket succesfully connected with id: '+socket.id); 
}); 

ve ...

io.sockets.on('connection', function (socket) { 
    console.log('Socket succesfully connected with id: '+socket.id); 
}); 

İlk kez bağlantısı üzerinde kullanması gereken bir io.on ve io.sockets.on arasındaki fark nedir

..? /: Bu io.sockets.on

+1

% 100 değil, ama sadece bir takma ad olduğunu düşünüyorum. "Io.sockets.emit" ve "io.emit" ile de görüldüğü gibi (burada) (http://socket.io/docs/server-api/#server#emit). –

+0

@Ben Fortune de her ikisine de sahip olduğumda, her ikisi de idam ediliyor .. io.on ('bağlantı', ...) iki kez kullanmak yanlış ..? – Srinath

cevap

7

olan Socket.IO istemcileri varsayılan olarak bağlanması varsayılan ad alanı için çalıştığını neden socket.on npm page rağmen

io.on kullanır. io.sockets veya io (docs) tarafından tanımlanmıştır.

belgelerine kopyalanan Bu örnek:

// the following two will emit to all the sockets connected to `/` 

io.sockets.emit('hi', 'everyone'); 

io.emit('hi', 'everyone');   // short form 

o yayarlar 'için olduğu gibi, bu 'açık' için aynı olduğunu varsayalım: 'io' kullanarak eşdeğerdir 'io.sockets' kullanarak sadece, sadece daha kısa bir form.

Yuvalarınızı “adlandırmak” için, farklı uç noktaları veya yollar atamak demektir (bu da kullanışlı olabilir). Bu bir cevap itibaren

SO question:

"Socket.io iki ayrı örneklerini olduğunu, ama yine de oldukça akıllı bir bağlantı, bilgi sınırlar sanki sizin için tüm çalışır"