io.on('connection',…)vs io.sockets.on('connection',…)

我正在使用socket.io和平均堆栈的Web应用程序。 我启动了3006端口上的套接字服务器。

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

这两个似乎连接工作。

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

和…

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

io.onio.sockets.on什么区别,我应该在第一次连接时使用哪一个?

虽然socket.on npm页面使用io.on为什么它为io.sockets.on工作

Socket.IO客户端默认连接到的默认命名空间是: / 。 它由io.sockets或简单的io ( 文档 )标识。

这个例子是从文档中复制的:

 // the following two will emit to all the sockets connected to `/` io.sockets.emit('hi', 'everyone'); io.emit('hi', 'everyone'); // short form 

我认为'on'和'emit'是一样的:使用'io.sockets'相当于只使用'io',它只是一个简短的forms。

为了“命名空间”您的套接字,意味着分配不同的端点或path(这可能是有用的)。

从这个SO 问题的答案:

“Socket.io为你做所有的工作,就好像它是两个独立的实例,但是仍然把信息限制在一个连接上,这是非常聪明的。