Gateway::getUidByClientId
說明:
string Gateway::getUidByClientId(string $client_id);
(要求Gateway版本>=3.0.8)
如何查看Gateway版本
返回client_id綁定的uid,如果client_id沒有綁定uid,則返回null。
參數(shù)
$client_id
字符串client_id。
返回值
返回字符串或者數(shù)字,返回類型取決于之前執(zhí)行bindUid綁定的uid的數(shù)據(jù)類型
注意
在onClose回調(diào)中無法使用此接口,解決方法是bindUid時(shí)記錄一個(gè)$_SESSION['uid']=uid
,Events::onClose
的時(shí)候用$_SESSION['uid']
來獲取uid
。
但是仍然要注意$_SESSION['uid']
一般是在onMessage/onWebSocketConnect
里賦值的,但是onMessage/onWebSocketConnect
在onClose調(diào)用前不一定會(huì)被調(diào)用,比如客戶端發(fā)起了tcp連接后未發(fā)送任何數(shù)據(jù)然后關(guān)閉了連接,類似這種情況服務(wù)端Events ::onClose
回調(diào)中不會(huì)有$_SESSION['uid']
值,所以Events::onClose
中獲取$_SESSION['uid']
值需要判斷下uid
鍵值是否存在。
范例
use \GatewayWorker\Lib\Gateway;
class Events
{
...
public static function onMessage($client_id, $message)
{
Gateway::bindUid($client_id, 123);
var_export(Gateway::getUidByClientId($client_id));
}
...
}
輸出類似
123