我很难理解以下两者的区别:
io.on('connection', function (){ }); io.on('connect', function,(){ });
可能是一个相当原始的问题,但我无法找到关于它的明确文件。我很想知道其中的区别。
ymdaylpp1#
这是同一事物的不同名称。如socket.io v2文档(当前版本)所述:事件:connection是事件:connect。在客户端连接时触发的连接。
socket.io
connection
connect
neskvpey2#
我同意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。
fsi0uk1n3#
从命名:io.on('connection', function (socket) { });在连接打开后被直接调用。io.on('connect', function () { });在连接打开之前被直接调用。但是在快速阅读代码(https://github.com/Automattic/socket.io/blob/master/lib/socket.js)上,它看起来像是事件名称connect在 * 连接打开之后发出,并且没有名为connection的事件。
io.on('connection', function (socket) { });
io.on('connect', function () { });
3条答案
按热度按时间ymdaylpp1#
这是同一事物的不同名称。如
socket.io
v2文档(当前版本)所述:事件:
connection
是事件:connect
。在客户端连接时触发的连接。neskvpey2#
我同意mabe.berlin关于这些事件顺序的想法。
运行:
你会得到这样的结果:
但如果你尝试
你应该得到这样的东西:
它证明了socket.io将首先处理
connect
,然后处理connection
。fsi0uk1n3#
从命名:
io.on('connection', function (socket) { });
在连接打开后被直接调用。io.on('connect', function () { });
在连接打开之前被直接调用。但是在快速阅读代码(https://github.com/Automattic/socket.io/blob/master/lib/socket.js)上,它看起来像是事件名称
connect
在 * 连接打开之后发出,并且没有名为connection
的事件。