Node.js + Socket.io:如何管理不同的聊天

时间:2013-12-24 12:02:59

标签: node.js socket.io

我正在寻找满足这些要求的解决方案:

  1. 许多客户通过不同网站(域)的浏览器进行网络聊天; 运营商只为他的网站服务,例如:

    site1-> chat1->算子1

    site2-> chat2-> operator2

  2. 服务器端应该知道哪个客户端从站点进入并将其路由到chat1或chat2(取决于域名);

  3. 无限客户端的服务器端支持
  4. 无限域名的服务器端支持
  5. 我查看node.js + socket.io的方向,了解如何为一个聊天域路由客户端和运营商,

    在服务器端像这样:

    app.get('/admin', function(req, res, next) {
           res.sendfile(__dirname + '/admin.html');
           next();
    
    });
    
    app.get('/user', function(req, res, next) {
        res.sendfile(__dirname + '/index.html');
            next();
    });
    

    如果我们需要来自不同站点的路由消息,我可以将此变体用于ex。其中id-param设置了domain-id的值

    app.get('/admin/:id?', function(req, res, next) {
        var id = req.params.id;
        res.sendfile(__dirname + '/admin'+id+'.html');
            next();
    
    });
    
    app.get('/user/:id?', function(req, res, next) {
        var id = req.params.id;
            res.sendfile(__dirname + '/index'+id+'.html');
            next();
    });
    

    有疑问:

    1. main - chain node.js + socket.io是正确的解决方案吗?
    2. 如何设置io.sockets.on的相同逻辑('connection',function(socket){} 适用于所有域名(用户和管理员)
    3. 提前致谢。

1 个答案:

答案 0 :(得分:0)

是的,这是一个很好的解决方案

您正在为不同类型的用户使用名称空间,您可以使用会议室来管理每种类型的用户 https://github.com/LearnBoost/socket.io/wiki/rooms

这是完整的文档 https://github.com/LearnBoost/socket.io/wiki