Gateway::sendToUid
說明:
void Gateway::sendToUid(mixed $uid, string $message);
向uid綁定的所有在線client_id發(fā)送數(shù)據(jù)。
注意:默認(rèn)uid與client_id是一對多的關(guān)系,如果當(dāng)前uid下綁定了多個(gè)client_id,則多個(gè)client_id對應(yīng)的客戶端都會收到消息,這類似于PC QQ和手機(jī)QQ同時(shí)在線接收消息。
參數(shù)
$uid
uid可以是字符串、數(shù)字、或者包含uid的數(shù)組。如果為數(shù)組,則是給數(shù)組內(nèi)所有uid發(fā)送數(shù)據(jù)
$message
要發(fā)送的數(shù)據(jù)(字符串類型),此數(shù)據(jù)會被Gateway所使用協(xié)議的encode方法打包后再發(fā)送給客戶端
返回值
因?yàn)閿?shù)據(jù)發(fā)送是異步進(jìn)行的,所以沒有返回值。一般來說只要uid在線就可以發(fā)送成功。
發(fā)送前先可以用Gateway::getClientIdByUid判斷下uid是否有在線的client_id。
范例
use \GatewayWorker\Lib\Gateway;
class Events
{
...
public static function onMessage($client_id, $message)
{
// $message = '{"type":"send_to_uid","uid":"xxxxx", "message":"...."}'
$req_data = json_decode($message, true);
Gateway::sendToUid($req_data['uid'], $req_data['message']);
}
...
}