getUidByClientId

目前并没有这个接口,开发者可以将uid存储到session中,获取的时候从session获取即可。

如果是获取当前请求所属client_id的session,直接使用$_SESSION变量即可。

如果想获取任意client_id的session,可以通过Gateway::getSession($client_id)获取。

  1. class Events
  2. {
  3. public static function onMessage($client_id, $data)
  4. {
  5. // session中没有uid,说明没用绑定uid,执行uid绑定并存储uid到session
  6. if (!isset($_SESSION['uid'])) {
  7. // 一般是根据$data获取uid,这里为了演示方便随机生成uid
  8. $uid = rand(1, 10000);
  9. // uid用session存储起来,避免重复绑定
  10. $_SESSION['uid'] = $uid;
  11. // 绑定uid
  12. Gateway::bindUid($client_id, $uid);
  13. // 通知客户端uid生成并存储成功
  14. return Gateway::sendToClient($client_id, 'uid设置成功'.$uid);
  15. }
  16. // session中有uid,证明已经绑定过uid
  17. return Gateway::sendToClient($client_id, '你的uid为'.$_SESSION['uid']);
  18. }
  19. }