Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NodeJS:在不重新启动的情况下向Socket.IO服务器添加通道_Node.js_Websocket_Socket.io - Fatal编程技术网

Node.js NodeJS:在不重新启动的情况下向Socket.IO服务器添加通道

Node.js NodeJS:在不重新启动的情况下向Socket.IO服务器添加通道,node.js,websocket,socket.io,Node.js,Websocket,Socket.io,编辑:由于对EventMachine的了解不足,提出了此问题 通过Socket.IO接口,我可以多路连接“通道”。如何启动Socket.IO服务器,但在不停止/启动服务器的情况下添加频道 var io = require('socket.io').listen(80); var chat = io .of('/chat') .on('connection', function (socket) { socket.emit('a message', { that:

编辑:由于对
EventMachine
的了解不足,提出了此问题

通过Socket.IO接口,我可以多路连接“通道”。如何启动Socket.IO服务器,但在不停止/启动服务器的情况下添加频道

var io = require('socket.io').listen(80);

var chat = io
  .of('/chat')
  .on('connection', function (socket) {
    socket.emit('a message', {
        that: 'only'
      , '/chat': 'will get'
    });
    chat.emit('a message', {
        everyone: 'in'
      , '/chat': 'will get'
    });
  });

var news = io
  .of('/news')
  .on('connection', function (socket) {
    socket.emit('item', { news: 'item' });
  });

此Socket.IO中的代码示例显示启动服务器,然后创建两个频道,分别为
聊天
新闻
。如果我用
聊天
启动服务器,但想在不中断
聊天
的情况下添加
新闻
,该怎么办?如何添加频道?

无需重新启动服务器即可添加名称空间。只需开始使用新的名称空间。在您的示例中,两个名称空间(
chat
news
)都是在服务器启动后创建的。

您不需要重新启动服务器来添加名称空间。只需开始使用新的名称空间。在您的示例中,两个名称空间(
chat
news
)都是在服务器启动后创建的。

您的意思是,允许用户输入一个新名称空间,然后使用它吗?您的意思是,允许用户输入一个新名称空间,然后使用它吗?您能给我一个示例,说明为什么要使用chat启动服务器吗,但不是新闻?我需要更好地理解您的实际用例。否则,Vadim是正确的,您只需调用
io.of('channel')
来创建另一个通道,无需重新启动。我将启动Socket.io服务器,并使用脚本添加流程实例,每个绑定到创建流程时创建的通道。否则,请解释我将如何在外部(如从另一个脚本)向预先存在的Socket.IO服务器添加通道。那么,您是否正在运行多个节点实例?我不知道你所说的“用脚本添加流程实例”是什么意思。你只是想在不同的文件中设置多个频道吗?你能给我一个例子说明为什么你想用聊天而不是新闻来启动服务器吗?我需要更好地理解您的实际用例。否则,Vadim是正确的,您只需调用
io.of('channel')
来创建另一个通道,无需重新启动。我将启动Socket.io服务器,并使用脚本添加流程实例,每个绑定到创建流程时创建的通道。否则,请解释我将如何在外部(如从另一个脚本)向预先存在的Socket.IO服务器添加通道。那么,您是否正在运行多个节点实例?我不知道你所说的“用脚本添加流程实例”是什么意思。您只是想在不同的文件中设置多个频道吗?