public function handle($event)
$flag=0;
// trycatch (signatureinvalidexception $e) catch (expiredexception $e)catch (exception $e)
// if($flag>0)
// websocket握手連線演算法驗證
$secwebsocketkey = $request->header['sec-websocket-key'];
$patten = '#^[+/0-9a-za-z][aqgw]==$#';
if (0 === preg_match($patten, $secwebsocketkey) || 16 !== strlen(base64_decode($secwebsocketkey)))
echo $request->header['sec-websocket-key'];
$key = base64_encode(sha1(
$request->header['sec-websocket-key'] . '258eafa5-e914-47da-95ca-c5ab0dc85b11',
true
));$headers = [
'upgrade' => 'websocket',
'connection' => 'upgrade',
'sec-websocket-accept' => $key,
'sec-websocket-version' => '13',
];// websocket connection to 'ws:'
// failed: error during websocket handshake:
// response must not include 'sec-websocket-protocol' header if not present in request: websocket
if (isset($request->header['sec-websocket-protocol']))
foreach ($headers as $key => $val)
$response->status(101);
$response->end();
}
在中間那部分**沒有注釋時,報錯
[2019-04-05 17:17:36 $98833.0] warning swmanager_check_exit_status: worker#1[pid=98835] abnormal exit, status=255, signal=0
注釋掉後正常了
127.0.0.1:9800
websocket.html:22 已經開啟了websocket連線,可以進行實時通訊了
經過反覆排查是因為jwt沒有用composer引進來。。。
mac下安裝composer
composer update就ok了
swoole學習筆記
一 服務端 0.swoole常用的配置項 daemonize true 守護程序化 worker num swoole配置引數 設定啟動的worker程序數 如 1 個請求耗時 100ms,要提供 1000qps 的處理能力,那必須配置 100 個程序或更多。reactor num 執行緒數 tas...
swoole學習筆記一
管理程序manager 非同步reactor執行緒 全非同步非阻塞 同步或者非同步worker程序,沒有用到epoll task worker程序 完全是同步阻塞模式 factory task 如果reactor最大允許監聽的事件數比reactor的事件數小的話用poll select,否則用epo...
swoole 學習筆記(1)
解壓 configure make make install tips php i grep php.ini 檢視php.ini 配置檔案位置 獲取原始碼 swoole官網 phpize 生成configure 檔案 configure make make install configure ena...