Events::onWebSocketConnect
说明:
void Events::onWebSocketConnect(string $client_id, array $data);
(要求Gateway版本>=3.0.8) 如何查看Gateway版本
当客户端连接上gateway完成websocket握手时触发的回调函数。
注意:此回调只有gateway为websocket协议并且gateway没有设置onWebSocketConnect时才有效。
参数
$client_id
client_id固定为20个字符的字符串,用来全局标记一个socket连接,每个客户端连接都会被分配一个全局唯一的client_id。
$data
websocket握手时的http头数据,包含get、server等变量
返回值
无返回值,任何返回值都会被视为无效的
onConnect范例
use \GatewayWorker\Lib\Gateway;class Events{public static function onWebSocketConnect($client_id, $data){var_export($data);if (!isset($data['get']['token'])) {Gateway::closeClient($client_id);}}}
客户端连接代码类似:
var ws = new WebSocket('ws://127.0.0.1:7272/?token=kjxdvjkasfh');
服务端终端打印类似:
array ('get' =>array ('token' => 'kjxdvjkasfh',),'server' =>array ('REQUEST_METHOD' => 'GET','REQUEST_URI' => '/?token=kjxdvjkasfh','SERVER_PROTOCOL' => 'HTTP/1.1','HTTP_HOST' => '127.0.0.1:7272','SERVER_NAME' => '127.0.0.1','SERVER_PORT' => '7272','HTTP_CONNECTION' => 'Upgrade','HTTP_PRAGMA' => 'no-cache','HTTP_CACHE_CONTROL' => 'no-cache','HTTP_UPGRADE' => 'websocket','HTTP_ORIGIN' => 'http://127.0.0.1:55151','HTTP_SEC_WEBSOCKET_VERSION' => '13','HTTP_USER_AGENT' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36','HTTP_ACCEPT_ENCODING' => 'gzip, deflate, br','HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9,en;q=0.8','HTTP_COOKIE' => 'lvt_7b1919221=1237y75','HTTP_SEC_WEBSOCKET_KEY' => 'MWXGA2FauwGJ2beehaqZsQ==','HTTP_SEC_WEBSOCKET_EXTENSIONS' => 'permessage-deflate; client_max_window_bits','QUERY_STRING' => 'token=kjxdvjkasfh',),'cookie' =>array ('lvt_7b1919221' => '1237y75'),)
