有不有熟悉webman及workerman源碼的同學(xué) 一起來(lái)做集成h2及grpc到webman中,其實(shí)就是做適配...
我正在實(shí)現(xiàn)http2協(xié)議,握手方式目前大多數(shù)客戶端都是ssl協(xié)商上層協(xié)議,也就是告訴客戶端服務(wù)器支持h2 在監(jiān)聽(tīng)的時(shí)候要加以下設(shè)置 stream_context_set_option($this->_context, "ssl", "alpn_protocols", "h2, http/1.1"); 目前我直接改的worker類(lèi),在里面添加這個(gè)參數(shù),但...
最近想在workerman上實(shí)現(xiàn)http2協(xié)議,封裝了幀協(xié)議后沒(méi)有驅(qū)動(dòng)力,感覺(jué)實(shí)現(xiàn)了對(duì)現(xiàn)在也沒(méi)什么用,有沒(méi)有哪位大神想來(lái)試試看,我們一起來(lái)做這件事。...
http://wtbis.cn/doc/webman/components/arms.html 文檔中為了做統(tǒng)計(jì),其實(shí)是用了分布式鏈路追蹤最簡(jiǎn)單的實(shí)踐,這幾天我在想,都做到這一步了其實(shí)還可以做更多,比如鏈路中加入redis , mysql, function, rpc, httprequest的鏈路,形成完整的鏈路追蹤。在中間件或者方法的前置和后置方法切入從而實(shí)現(xiàn)針對(duì)方法的統(tǒng)計(jì),或者使用插件...
按照官網(wǎng)配置redis,運(yùn)行一段時(shí)間后出現(xiàn)鏈接斷開(kāi)問(wèn)題, Next RedisException: Connection closed in /abc/vendor/illuminate/redis/Connections/PhpRedisConnection.php:406 出現(xiàn)此問(wèn)題,我測(cè)試會(huì)在兩種情況下出現(xiàn) <?php #default_socket_timeout為默認(rèn)值60 #第一種 $rds...
這里用docker來(lái)跑webman http://wtbis.cn/doc/webman#/install?id=docker%e7%8e%af%e5%a2%83 我想問(wèn)問(wèn) 關(guān)于linux 系統(tǒng)調(diào)優(yōu) http://doc.workerman.net/appendices/kernel-optimization.html 這個(gè)是在docker容器里面配置還是在宿主機(jī)上面修改配置?...
老問(wèn)題如下 https://wenda.workerman.net/question/6111 ps auxf 發(fā)現(xiàn)進(jìn)程還存在 strace -ttp 8764 root@hecs-x-xlarge-2-linux-20200821114232:~# strace -ttp 8764 strace: Process 8764 attached 10:08:04.904878 wait4(-1, 0x7ffe68cc...
問(wèn)題如下 早上起來(lái)上班,發(fā)現(xiàn)訪問(wèn)不了,發(fā)現(xiàn)8787端口已經(jīng)沒(méi)有監(jiān)聽(tīng)。 但是php start.php status 如上圖。 自定義的其他進(jìn)程也已經(jīng)不存在了。 重啟后恢復(fù)正常訪問(wèn)。 正常情況如下 請(qǐng)問(wèn)各位有沒(méi)有遇到這樣的問(wèn)題,有可能是什么地方的問(wèn)題。...
webman的路由建議寫(xiě)的全一點(diǎn),比如分組功能就要自己去繼承Route再擴(kuò)展FastRoute的分組功能...
webman的支付文檔里面推薦的支付 http://wtbis.cn/doc/webman#/components/pay yansongda/pay 對(duì)傳統(tǒng)fpm才合適可用,特別是輸出響應(yīng)這一塊 還是我沒(méi)有理解到?我看源碼它的響應(yīng)是直接echo ,設(shè)置header也是header函數(shù)做的,和workerman 不兼容。 Symfony\Component\HttpFoundation\Resp...
class CrossDomain implements MiddlewareInterface { public function process(Request $request, callable $next): Response { // 如果是options請(qǐng)求,不處理業(yè)務(wù) if ($request->method() == 'OPTIONS') { ...
~~ webman中 $request->getRemoteIp()取的是真實(shí)tcp連接 ip 如有代理 nginx 就不友好,不管頭怎么設(shè)置真實(shí)ip都是nginx的真實(shí)ip 自己實(shí)現(xiàn)獲取用戶ip雖不難,但是,建議加入到 request 類(lèi)里面 $request->header('X-Real-IP')~~...
最近在看webman的源碼,我是用的 php-di容器。composer.json的自動(dòng)加載機(jī)制并沒(méi)有包含目錄下的app目錄,app目錄下的controller 是在App類(lèi)里面include,代碼如下 public static function loadController($path) { foreach (\glob($path . '/controller/*.php') as $fil...
http://wtbis.cn/doc/webman#/process?id=%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6%e8%af%b4%e6%98%8e 這里缺少一個(gè)配置services ,文檔里面沒(méi)有,這是看意思是想做進(jìn)程內(nèi)再開(kāi)一個(gè)端口監(jiān)聽(tīng) 不然start.php中 如下代碼不會(huì)起作用 foreach ($config['services'] ?? [] as ...
workerman 需要處理大端小端問(wèn)題嗎?網(wǎng)絡(luò)字節(jié)序是大端,如果服務(wù)器是小端,應(yīng)該需要轉(zhuǎn)換,這個(gè)轉(zhuǎn)換是誰(shuí)完成的呢?如果是workerman完成的我想看看workerman轉(zhuǎn)換的代碼,我沒(méi)有看到源碼有這個(gè)操作。還是說(shuō)需要開(kāi)發(fā)人員自己收到數(shù)據(jù)后轉(zhuǎn)換?...
大家認(rèn)為workerman有必要在程序中創(chuàng)建數(shù)據(jù)庫(kù)連接池嗎? 我認(rèn)為workerman沒(méi)必要 ,做一個(gè)斷線重連即可。因?yàn)椴皇嵌嗑€程,或協(xié)程,所以一個(gè)進(jìn)程中從請(qǐng)求來(lái)臨到請(qǐng)求結(jié)束都用一個(gè)數(shù)據(jù)庫(kù)連接,下一個(gè)請(qǐng)求來(lái)臨只要這個(gè)鏈接還有效還可以接續(xù)用,線程不會(huì)隨著請(qǐng)求的結(jié)束而結(jié)束,連接池創(chuàng)建多個(gè)數(shù)據(jù)庫(kù)連接只能是浪費(fèi)。 php-fmp 更沒(méi)有必要在程序中做連接池,因?yàn)椴坏粋€(gè)請(qǐng)求是從上到下都不會(huì)有其他請(qǐng)求干擾(協(xié)程),也沒(méi)...
thrift-rpc 有什么優(yōu)勢(shì)?傳輸二進(jìn)制更省帶寬?各種語(yǔ)言通用性? 如果我用json-rpc來(lái)實(shí)現(xiàn)不是更好嗎? json在各種語(yǔ)言都通用, 如果我傳輸?shù)臅r(shí)候壓縮一下,接收后解壓一下帶寬也很節(jié)約, 而且thrift 沒(méi)有傳統(tǒng)的json更易讀,復(fù)雜的也更高。 求各位駁斥我的看法。...
異步tcp我認(rèn)為的是,tcp請(qǐng)求會(huì)做到異步化,tcp發(fā)起請(qǐng)求后,程序自己可以處理其他業(yè)務(wù),tcp有結(jié)果了就執(zhí)行回調(diào)函數(shù),但是通過(guò)我的實(shí)驗(yàn)并不是。不知道是我代碼有問(wèn)題還是怎么回事,求解答。 $task = new Worker(); $task->onWorkerStart = function ($task) { $connection_to_baidu = new AsyncTcpConnection('...
為什么定時(shí)器類(lèi) Timer 里面有一些 pcntl_alarm的函數(shù),我不明白為什么要用這些函數(shù),workerman的定時(shí)器我看并不依賴(lài)于pcntl_alarm,是用libevent擴(kuò)展或者event擴(kuò)展 或者超時(shí)來(lái)實(shí)現(xiàn)的毫秒級(jí)的定時(shí)器。 public static function signalHandle() { if (!self::$_event) { \pcntl_alarm(1...