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.on
和io.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为你做所有的工作,就好像它是两个独立的实例,但是仍然把信息限制在一个连接上,这是非常聪明的。