登录的时候client_id绑定了 uid, 退出的使用 Gateway::getUidByClientId 无法获取uid
onClose 方法时,我想告诉前台那个用户UI的退出房间,但是无法获取uid ,发现uid 已经删除。
https://www.workerman.net/doc/gateway-worker/get-uid-by-client-id.html#%E6%B3%A8%E6%84%8F 这个手册有写,onClose的时候无法Gateway::getUidByClientId($client_id)获得uid。因为连接断开后gateway将连接的相关数据都销毁了,调用接口找不到数据。
Gateway::getUidByClientId($client_id)
业务中最好不要调用Gateway::getUidByClientId($client_id),用session来记录uid性能最好。
那我网页关闭时,我如何告诉前台,,某人id推出.
用session记录uid,退出的时候就知道那个uid退出了,你看手册。
看了手册,根据大佬的意思,在绑定用户id的后面紧接着写了:
$_SESSION[$client_id] = $uid;
然后在 onClose 方法内如下打印了:
public static function onClose($client_id) { echo '<pre>-----------';print_r($_SESSION); ...... }
总感觉这样写着好别扭,大佬你为何不以 Gateway 的形式帮大家实现这个功能呢?毕竟这个需求太广泛了。
@walkor
https://www.workerman.net/doc/gateway-worker/get-uid-by-client-id.html#%E6%B3%A8%E6%84%8F
这个手册有写,onClose的时候无法
Gateway::getUidByClientId($client_id)
获得uid。因为连接断开后gateway将连接的相关数据都销毁了,调用接口找不到数据。业务中最好不要调用
Gateway::getUidByClientId($client_id)
,用session来记录uid性能最好。那我网页关闭时,我如何告诉前台,,某人id推出.
用session记录uid,退出的时候就知道那个uid退出了,你看手册。
看了手册,根据大佬的意思,在绑定用户id的后面紧接着写了:
$_SESSION[$client_id] = $uid;
然后在 onClose 方法内如下打印了:
public static function onClose($client_id) {
echo '<pre>-----------';print_r($_SESSION);
......
}
总感觉这样写着好别扭,大佬你为何不以 Gateway 的形式帮大家实现这个功能呢?毕竟这个需求太广泛了。
@walkor