Gateway::getClientSessionsByGroup

说明:

  1. array Gateway::getClientSessionsByGroup(mixed $group);

获取某个分组所有在线client_id信息。

返回值

返回值为client_id为key,client_id对应的$_SESSION为值的数组。 类似下面的格式

  1. array(
  2. '7f00000108fc00000008' => array(...),
  3. '7f00000108fc00000009' => array(...),
  4. )

注意:如果是客户端断网断电等极端情况掉线,客户端的onClose回调可能无法及时触发,参见onClose说明。也就是说对应客户端出现断网断电等极端掉线情况返回值中可能包含了异常掉线的client_id数据。这种情况需要心跳来检测已经掉线的客户端。

更新日志

版本 说明
2.0.6 接口名为getClientInfoByGroup
2.0.7 接口getClientInfoByGroup更名为getClientSessionsByGroup

范例

  1. use \GatewayWorker\Lib\Gateway;
  2. class Events
  3. {
  4. ...
  5. public onMessage($client_id, $message)
  6. {
  7. $group = 'room-1';
  8. $_SESSION['name'] = $message['name'];
  9. $_SESSION['sex'] = $message['sex'];
  10. Gateway::joinGroup($client_id, $group);
  11. var_export(Gateway::getClientSessionsByGroup($group));
  12. }
  13. ...
  14. }

打印出的数据类似如下:

  1. array(
  2. '7f00000108fc00000008' => array('name'=>'Tom', 'sex'=>1),
  3. '7f00000108fc00000009' => array('name'=>'Joan', 'sex'=>0),
  4. )