【问题标题】:Does ng-socket-io allow rooms/joining? If not, how do I make a specific user join a room?ng-socket-io 是否允许房间/加入?如果没有,我如何让特定用户加入房间?
【发布时间】:2017-12-19 15:47:22
【问题描述】:

我想使用ng-socket-io 加入房间。我知道 Socket.IO supports rooms and namespaces 所以这绝对是 Socket.IO 可以实现的。

我基本上希望连接的用户加入一个房间,所以我可以在后端区分他们。这是我现在做的一个例子,我不能真正在后端工作:

this.socket.emit("setRoom", room.id);

然后我在后端抓取它:

io.on('connection', (socket) => {
    socket.on('setRoom', (roomId) => {
        socket.roomId = roomId;
    });
});

然后我基本上想做这样的事情,当我想向那个房间发出新消息时:

io.clients.forEach(client => {
    if(client.roomId === roomId) {
        client.emit("newMessage", "some message to those only");
    }
});

ng-socket-io 甚至可以吗?

【问题讨论】:

    标签: node.js angular sockets socket.io


    【解决方案1】:

    我认为这与 ng-socket-io 没有任何关系,您需要的只是后端。

    而不是这个...

    io.clients.forEach(client => {
        if(client.roomId === roomId) {
            client.emit("newMessage", "some message to those only");
        }
    });
    

    在最新版本的 socket-io 上试试这个 ...

    _.forEach(io.sockets.sockets, (socket) => {
        if(socket.roomId === roomId) {
            io.to(roomId).emit("newMessage", "some message to those only");
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-07
      • 2021-02-04
      • 2017-11-15
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      相关资源
      最近更新 更多