我很难理解:
之间的区别io.on('connection', function (){ });
io.on('connect', function,(){ });
可能是一个非常原始的问题,但我无法找到有关它的明确文档。很想学习差异。
答案 0 :(得分:4)
我同意mabe.berlin关于这些事件顺序的想法。
执行命令
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
io.on('connection', function(socket){
console.log('connection',socket.id);
io.on('connect',function (socket) {
console.log('conenct',socket.id);
});
});
http.listen(1111);
你会得到类似的东西:
connection 6Song1KpSUoUkKgPAAAA
但是如果你试试
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
io.on('connect',function (socket) {
console.log('conenct',socket.id);
io.on('connection', function(socket){
console.log('connection',socket.id);
});
});
http.listen(1111);
你应该得到类似的东西:
conenct pSlSKNaabR2LBCujAAAA
connection pSlSKNaabR2LBCujAAAA
它证明socket.io将首先处理connect
然后connection
。
答案 1 :(得分:3)
来自命名:
连接打开后直接调用io.on('connection', function (socket) { });
。
1>}在连接打开之前直接调用。
但是在快速阅读代码(https://github.com/Automattic/socket.io/blob/master/lib/socket.js)上,在
打开连接之后,事件名称io.on('connect', function () { });
似乎是发出的,并且没有名为{{1的事件}}
答案 2 :(得分:0)
如socket.io
docs所述:
事件:
connection
是事件:connect
的同义词。来自客户端的连接会触发哪个连接。