首页 > 解决方案 > Socket.io 客户端如何知道用户是否连接到通道

问题描述

在 Mysocket 中,我有一个用户可以订阅取消订阅的可用“房间”列表。用户可以在同一视图中订阅和取消订阅不同的房间。

我试图用这种方法解决这个问题,但问题是套接字正在使用当前事件(“订阅”或“取消订阅”)更新每个房间,而不仅仅是需要的。我有一个处理套接字状态的对象:

const rooms = {
            1: {  id: 1, isConnected: true },
            2: {  id: 2, isConnected: true },
            3: {  id: 3, isConnected: false
            }
          };

subscribeSocketLive( rooms ){
    _.each(rooms , room => {
        if(room.isConnected ){
          mySocket.emit('subscribe',  Number( room.id ) );
      }
      else if( !room.isConnected ){
        mySocket.emit('unsubscribe',  Number( room.id ) );
      }
    });
  },

我根据用户的交互在一个单独的文件中处理对象房间。所以我认为这并不重要,但如果您需要更多信息,我可以在这里发布。

标签: javascriptsocket.io

解决方案


推荐阅读