【问题标题】:What's the difference? .on "connect" vs .on "connection"有什么不同? .on“连接”与 .on“连接”
【发布时间】:2014-12-08 17:19:55
【问题描述】:

我很难理解以下之间的区别:

io.on('connection', function (){ });

io.on('connect', function,(){ });

可能是一个相当原始的问题,但是我无法找到关于它的明确文档。很想了解其中的区别。

【问题讨论】:

    标签: node.js socket.io


    【解决方案1】:

    这些是同一事物的不同名称。 写在socket.iodocs:

    事件:connection 是事件:connect 的同义词。来自客户端的连接触发了哪个连接。

    【讨论】:

      【解决方案2】:

      来自命名:

      io.on('connection', function (socket) { }); 在连接打开后直接调用io.on('connect', function () { }); 被直接调用之前连接将被打开。

      但在快速阅读代码 (https://github.com/Automattic/socket.io/blob/master/lib/socket.js) 上,似乎事件名称 connect 是在打开连接之后发出的 并且没有名为 connection 的事件。

      【讨论】:

      • 我不确定这是否澄清了任何事情 - 你能举例说明吗? “连接”确实存在,你可以在官方文档示例中看到它。
      • 如果它存在于文档中并不意味着它真的存在。你测试了这两个事件吗?什么时候叫他们?
      • 是的,当然,没有不同的工作方式,我似乎无法理解。
      【解决方案3】:

      我同意 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-20
        • 2021-04-22
        • 2013-04-18
        • 1970-01-01
        • 2015-07-08
        • 2012-08-14
        • 1970-01-01
        相关资源
        最近更新 更多