Gateway::getClientIdByUid
說明:
array Gateway::getClientIdByUid(mixed $uid);
返回一個(gè)數(shù)組,數(shù)組元素為與uid綁定的所有在線的client_id。如果沒有在線的client_id則返回一個(gè)空數(shù)組。
此方法可以判斷一個(gè)uid是否在線。
注意:返回值為與uid綁定的所有在線的client_id數(shù)組。因?yàn)橐呀?jīng)下線的client_id會(huì)自動(dòng)與uid解綁,所以已經(jīng)下線的client_id不會(huì)出現(xiàn)在返回值中。
參數(shù)
$uid
uid,可以是數(shù)字或者字符串。
返回值
返回一個(gè)client_id的數(shù)組
注意:如果是客戶端斷網(wǎng)斷電等極端情況掉線,客戶端的onClose回調(diào)可能無法及時(shí)觸發(fā),參見onClose說明。也就是說對(duì)應(yīng)客戶端出現(xiàn)斷網(wǎng)斷電等極端掉線情況返回值中可能包含已經(jīng)掉線的客戶端client_id。這種情況需要心跳來檢測(cè)已經(jīng)掉線的客戶端。
范例
use \GatewayWorker\Lib\Gateway;
class Events
{
...
public static function onMessage($client_id, $message)
{
// $message = '{"type":"get_client_id","uid":"xxxxx"}'
$req_data = json_decode($message, true);
var_export(Gateway::getClientIdByUid($req_data['uid']));
}
...
}
輸出類似
array(
'7f00000108fc00000008',
'7f00000108fc00000009'
)