【问题标题】:are socket io rooms automaticaly destroyed if empty?如果为空,socket io 房间是否会自动销毁?
【发布时间】:2017-11-15 07:42:24
【问题描述】:

我从 node.js 和 socket.io 开始。

我有两个问题: - 当一个房间是空的,它是否会自动销毁直到重新创建? 如果不自动销毁,是不是会占用服务器很多资源?

  • 在服务器端。应该传输数据的是 io 服务器还是连接的套接字?

    socket.emit('doSomething'); 要么 io.emit('doSomething');

【问题讨论】:

    标签: node.js sockets io socket.io


    【解决方案1】:

    房间会自动从数组中移除,nodeJS 的 V8 垃圾收集器完成从 ram 中完全移除房间的工作。你不必担心这些。请记住,所有用户在加入服务器时都会自动进入一个房间(名为 room 的 socket.id )。 io.emit 应该在您想从服务器发送消息给任何人时使用,socket.emit 应该在您只想向发件人发送消息时使用。有关此答案的更多信息:https://stackoverflow.com/a/40829919/7868639

    【讨论】:

    • 感谢您对房间使用情况的澄清,很好的解释!但你告诉我只在服务器端使用 io.emit 但在链接中你有“socket.to('game').emit('message', 'enjoy the game');”但是当我在客户端这样做时,它说它不是一个功能......而在服务器端这工作正常。
    • 我留下的链接显示了从服务器到客户端的所有可用通信方式。 socket.something 和 io.something 都有用法。这些都没有错。在客户端,你总是使用 socket.emit
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    相关资源
    最近更新 更多