Events::onConnect

    client_id固定为20个字的字符串,用来全局标记一个socket连接,每个客户端连接都会被分配一个全局唯一的client_id。

    client_id一旦被使用过,将不会被再次使用,也就是说client_id是不会重复的,即使分布式部署也不会重复。

    只要有client_id,并且对应的客户端在线,就可以调用Gateway::sendToClient($client_id, $data)等方法向这个客户端发送数据。

    $client_id是服务端自动生成的并且无法自定义。

    如果开发者有自己的id系统,可以用过Gateway::bindUid($client_id, $uid)把自己系统的id与client_id绑定,绑定后就可以通过Gateway::sendToUid($uid)发送数据,通过用户是否在线了。

    1. use \GatewayWorker\Lib\Gateway;
    2. class Events
    3. {
    4. public static function onConnect($client_id)
    5. {
    6. Gateway::sendToCurrentClient("Your client_id is $client_id");
    7. }
    8. }