swoole學習筆記 im server2

2021-09-16 21:08:29 字數 1536 閱讀 2359

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...