【问题标题】:Server-side joining for socket.io's namespacessocket.io 命名空间的服务器端连接
【发布时间】:2014-03-19 23:17:49
【问题描述】:

正如 socket.io 文档所说,您可以在客户端脚本中使用此代码加入 namespace:

io.connect('http://localhost');

据我所知,没有提供向服务器中的namespace 添加套接字的方法,但我能够使用类似于以下的代码向namespace(在服务器中)添加套接字以下:

socket.join('somenamespace');
io.of('somenamespace').emit('some-message', { ... });

第二行执行后,触发'somenamespace'的connection事件。

为什么会发生这种情况?使用这种方法将套接字添加到服务器端的命名空间是否正确?

是否有任何正确方法可以将套接字添加到 服务器 端的namespace?

请注意,我使用的是socket.io 0.9.14 和sails 0.9.8。

提前致谢。

【问题讨论】:

    标签: node.js socket.io sails.js


    【解决方案1】:

    这不是将套接字添加到namespaces 的正确方法。如果您在服务器中将命名空间定义为:

    var namespace1 = io.of('/namespace1');
    namespace1.on('connection', function(socket){
      socket.emit('msg',"message"); //only the particular socket from /namespace1 will get
    });
      //If you do this
    namespace1.emit('msgToAll', "message"); //everyone in namespace1 will get this message
    

    但是,房间不同于命名空间。 您可以通过以下方式从客户端连接到特定命名空间:

    io.connect('http://localhost:port/namespace');
    

    【讨论】:

      猜你喜欢
      • 2015-06-13
      • 2012-12-29
      • 1970-01-01
      • 2015-10-08
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多