Node.js socket.io的动态实例

Node.js socket.io的动态实例,node.js,socket.io,Node.js,Socket.io,如何拆分socket.io应用程序以在多个站点上动态使用它 理想情况下,我希望它基于url,以便localhost:3000/namespace1动态创建namespace1 我尝试复制我的socket.io代码,但是我需要每个实例一个端口号,这并不理想。我需要一个脚本来复制这个不理想的项目 我也看过,但经过几个小时的尝试,我无法让它工作 任何提示都将不胜感激 以下是我当前的服务器端代码: var-app=require('express')(); var http=require('http

如何拆分socket.io应用程序以在多个站点上动态使用它

理想情况下,我希望它基于url,以便localhost:3000/namespace1动态创建namespace1

我尝试复制我的socket.io代码,但是我需要每个实例一个端口号,这并不理想。我需要一个脚本来复制这个不理想的项目

我也看过,但经过几个小时的尝试,我无法让它工作

任何提示都将不胜感激

以下是我当前的服务器端代码:

var-app=require('express')();
var http=require('http')。服务器(应用程序);
var io=require('socket.io')(http);
app.get('/*',函数(req,res){
res.sendFile(uu dirname+'/index.html');
});
var nsp=io.of('/namespace1');
http.listen(3000,函数(){
console.log('监听*:3000');
});
nsp.on('连接'),功能(套接字){
console.log('connected');
socket.on('create',函数(房间名称){
console.log('房间里有人:'+房间名称);
插座连接(房间名称);
socket.room=房间名称;
});
socket.on('chat message',函数(msg){
nsp.in(socket.room).emit('chat message','message:'+msg);
});

});如果您不反对直接在库中进行修补,则只需删除中的三行(现在是第64-67行):

如果删除这三行,当客户端使用它们时,将在socket.io服务器中动态创建名称空间

var nsp = this.server.of(name);

有什么问题?您收到了什么错误?上面的代码正在工作。我需要帮助,了解如何基于url创建名称空间,或者其他任何可以帮助我动态创建socket.io不同实例的解决方案。一定有很多人这样做过,但我找不到任何有文档记录的解决方案。socket.io有一个内置的名称空间功能,可以让多个名称空间共享一个实际连接。您不使用该内置功能有什么原因吗?是的,因为在启动服务器之前,我必须在服务器端代码中声明所有名称空间。我需要一个动态的方法来生成它。
var nsp = this.server.of(name);