【问题标题】:Join a room by a hash (string)通过哈希(字符串)加入房间
【发布时间】:2014-07-04 21:44:59
【问题描述】:

我正在尝试解决以下问题:人们可以连接到一个房间,并且每 5 秒从这个房间中随机选择 2 人开始游戏(如果房间里至少有 2 人)。游戏是一个新房间。

所以我用io['client'].join('waitingRoom'); 将人们加入等候室并将他的ID io['client']['id'] 保存到数据库中(所以基本上我在数据库中保存了一个类似'Dde7Wp41kf0EA3r3AAAA' 的字符串)。

我有一个每 5 秒运行一次的任务,它从数据库中随机选择 2 个 ID,问题是我不知道如何在新的 'game' 房间中添加这 2 个 ID。我只有一个散列(一些字符串)而不是一个套接字对象。我可以这样做吗?

【问题讨论】:

  • 浏览源代码,我看不到按 ID 获取套接字的好方法。您可能必须在对象中存储 ID -> 套接字。

标签: socket.io socket.io-1.0


【解决方案1】:

你应该使用 io.sockets 的连接对象。它存储套接字,您可以通过 id 检索它们。

http://socket.io/docs/server-api/#namespace#connected:object

例子:

io.sockets.connected[socketIoID].emit('message', {data: 'test'});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 2010-11-06
    • 1970-01-01
    • 2013-05-08
    • 2010-12-24
    • 2013-01-20
    • 2011-08-18
    相关资源
    最近更新 更多