Gateway::bindUid()时是否可以使用$GLOBALS来记录uid,和使用$_SESSION有什么区别

手册里说:onClose回调里无法使用[size]Gateway::getUidByClientId()[/size]接口来获得uid,解决办法是在
Gateway::bindUid()
时记录一个
$_SESSION['uid']
,onClose的时候用
$_SESSION['uid']
来获得uid。
 
我在实际使用过程中曾用$GLOBALS来记录uid,发现有时不能正确的获得UID,是这两个变量有什么区别么?网上也未查阅到相关资料,求大神们指点下。
已邀请:

latin - 挨踢男

赞同来自:

按照我的理解,$GLOBALS 当前进程的所有连接共享,假设A连接设置了$GLOBALS['uid']=a, B连接再设置$GLOBALS['uid']=b,则之前被设置的值$GLOBALS['uid']=a被覆盖了,导致错乱了。
 
$_SESSION是记录当前连接的数据,用户间不共享。
 

土豆没有皮

赞同来自:

$GLOBALS["G".$client_id] ,每个$GLOBALS是根据client_id命名的,而client_id是唯一的,这样也会有覆盖情况么?

要回复问题请先登录注册