【问题标题】:Socket.io room empty eventSocket.io 房间清空事件
【发布时间】:2014-03-09 04:10:00
【问题描述】:

我有使用 socket.io 的在线文件编辑应用程序。用户加入与他们想要使用的特定文件相关的房间。我不想每次用户更改某些内容时都使用文件系统,因此文件缓存在内存中,但是当文件不再使用时,我想将其保存在磁盘上。 据我所知,一旦用户断开连接,他们就会被从房间中移除。有没有办法订阅“房间空”事件?

【问题讨论】:

    标签: javascript node.js socket.io


    【解决方案1】:

    你可以使用

    socket.on('disconnect', function() {})
    

    并计算打开的连接数。

    • 托本

    【讨论】:

    • 谢谢。可能我会按照你的建议去做。我认为有更优雅的方式来观察房间。
    • 有一个“房间空”的事件是语法糖——在我看来,没有这样一个事件更优雅:-)
    • 这并不能真正回答问题。所有这些告诉你的是当一个套接字断开连接时,它不会告诉你这个套接字所属的一个或多个房间是否是空的。
    【解决方案2】:

    如果你以某种方式管理房间,那么你可以使用这个:

    io.sockets.clients('room name');
    

    这会返回房间中所有客户端的套接字实例。如果此列表的长度为 0,则表示文件不再被任何客户端使用并且可以保存。希望这会奏效!

    【讨论】:

      猜你喜欢
      • 2012-06-11
      • 2019-05-13
      • 1970-01-01
      • 1970-01-01
      • 2019-03-02
      • 2011-12-02
      • 1970-01-01
      • 2021-08-20
      • 2018-07-05
      相关资源
      最近更新 更多