国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

Events::onConnect

說明:

void Events::onConnect(string $client_id);

當客戶端連接上gateway進程時(TCP三次握手完畢時)觸發(fā)的回調函數。

參數

$client_id

client_id固定為20個字符的字符串,用來全局標記一個socket連接,每個客戶端連接都會被分配一個全局唯一的client_id。

如果client_id對應的客戶端連接斷開了,那么這個client_id也就失效了。當這個客戶端再次連接到Gateway時,將會獲得一個新的client_id。也就是說client_id和客戶端的socket連接生命周期是一致的。

client_id一旦被使用過,將不會被再次使用,也就是說client_id是不會重復的,即使分布式部署也不會重復。

只要有client_id,并且對應的客戶端在線,就可以調用Gateway::sendToClient($client_id, $data)等方法向這個客戶端發(fā)送數據。

返回值

無返回值,任何返回值都會被視為無效的

注意

$client_id是服務端自動生成的并且無法自定義。

如果開發(fā)者有自己的id系統(tǒng),可以用過Gateway::bindUid($client_id, $uid)把自己系統(tǒng)的id與client_id綁定,綁定后就可以通過Gateway::sendToUid($uid)發(fā)送數據,通過Gateway::isUidOnline($uid)用戶是否在線了。

onConnect事件僅僅代表客戶端與gateway完成了TCP三次握手,這時客戶端還沒有發(fā)來任何數據,此時除了通過$_SERVER['REMOTE_ADDR']獲得對方ip,沒有其他可以鑒別客戶端的數據或者信息,所以在onConnect事件里無法確認對方是誰。要想知道對方是誰,需要客戶端發(fā)送鑒權數據,例如某個token或者用戶名密碼之類,在onMesssge里做鑒權。

onConnect范例

use \GatewayWorker\Lib\Gateway;

class Events
{

    public static function onConnect($client_id)
    {
       Gateway::sendToCurrentClient("Your client_id is $client_id");
    }

}
編輯于2024-03-13 17:37:33 完善本頁 +發(fā)起討論
贊助商