国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

反饋 webman-push插件兩處BUG

meystack

bug描述

webman-push插件兩處BUG

環(huán)境Windows10 PHP7.4 擴(kuò)展都已經(jīng)安裝正常

1、api->trigger提交數(shù)據(jù)不成功,測(cè)試onApiClientMessage, var_dump無(wú)回顯,沒(méi)執(zhí)行到這里

2、$request->rawBody() , 默認(rèn)獲取body數(shù)據(jù)存在獲取無(wú)效的問(wèn)題。詭異的是,有時(shí)候可以有時(shí)候不可以,
那么肯定就是BUG了,可以或者不可以的時(shí)候,數(shù)據(jù) 配置 KEY等完全一樣;就連測(cè)試BUG的人都一樣~_~!

程序代碼或配置

  // 執(zhí)行絕對(duì)是有問(wèn)題的,沒(méi)有正常發(fā)送結(jié)果
  $ch = $this->createCurl($this->_settings['api_address'], $s_url, 'POST', $query_params);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_value);
  $response = $this->execCurl($ch);
    /**
     * Get http raw body.
     *
     * @return string
     */
    public function rawBody()
    {
        // 獲取body數(shù)據(jù)不成功,數(shù)字簽名校驗(yàn)是正常的,就這里獲取不到
        return \substr($this->_buffer, \strpos($this->_buffer, "\r\n\r\n") + 4);
    }

期待的結(jié)果及實(shí)際結(jié)果

這個(gè)BUG其實(shí)昨天做測(cè)試的時(shí)候就發(fā)現(xiàn)了,但是,當(dāng)我從PHP7.3改為PHP7.4之后,就正常了,
我起初還以為是某個(gè)包或者函數(shù)不兼容7.3,今天臨下班看了下,居然又無(wú)法接收到了,按照平時(shí)的編碼習(xí)慣,
一個(gè)CURL函數(shù)寫完了,基本上不會(huì)出岔子,所以就沒(méi)往這里想,主要是,,這個(gè)插件吧,無(wú)異常,無(wú)日志,啥都沒(méi)有就是接收不到,搞的我很尷尬。通過(guò)一點(diǎn)點(diǎn)的追蹤發(fā)現(xiàn)了上述的兩個(gè)問(wèn)題;

1、發(fā)送的這個(gè)API接口,因?yàn)橄琻ame-channels等,可以完全使用POST寫死或者直接使用一個(gè)HTTP庫(kù)更好一些,或者可以把自身的request擴(kuò)展下,包裝guzzlehttp一層可以自己寫GET POST數(shù)據(jù)更穩(wěn)定一些。增加一個(gè)加密也可以,這樣數(shù)據(jù)通訊也安全了,如果可行,也可以參考C++ TCP鏈接里面常用的struct消息結(jié)構(gòu)體來(lái)進(jìn)行數(shù)據(jù)的捕捉!

2、rawBody函數(shù),校驗(yàn)過(guò)了,但是。。。Server.php第666行,能不能錯(cuò)誤信息不叫Invalid signature???這個(gè)錯(cuò)誤提示搞的我懷疑人生了,我把發(fā)送簽名,接收簽名都打印出來(lái),結(jié)果導(dǎo)致我以為

        // 一開(kāi)始我以為是這里斷言的,說(shuō)實(shí)話,我對(duì)著電腦發(fā)呆了很久很久~
        if ($auth_signature !== $real_auth_signature) {
            return $connection->send(new Response(401, [], 'Invalid signature'));
        }

重現(xiàn)bug的步驟

按照webman-push文檔搭建簡(jiǎn)易工程,接收不到,new Api()->xxxx執(zhí)行這個(gè)控制器的時(shí)候,等待加載完畢的時(shí)間有點(diǎn)過(guò)長(zhǎng)。。

系統(tǒng)環(huán)境及workerman/webman等具體版本

同上。

1332 3 0
3個(gè)回答

meystack

補(bǔ)充一下:使用postman直接post /app/1024/event 修改rawBody后是可以正常輸出信息的,
也就是端口監(jiān)聽(tīng)是沒(méi)問(wèn)題的,只有curl和rewBody需要處理

  • 暫無(wú)評(píng)論
liziyu

正準(zhǔn)備用,還沒(méi)用呢!關(guān)注學(xué)習(xí)一下!~

  • 暫無(wú)評(píng)論
walkor 打賞

webman/push插件用的人挺多了,沒(méi)有反饋過(guò)有這個(gè)問(wèn)題。

windows下cmd可能會(huì)被不小心暫停,例如鼠標(biāo)點(diǎn)擊cmd窗口時(shí)就會(huì)暫停程序,這會(huì)導(dǎo)致進(jìn)程無(wú)任何響應(yīng),這個(gè)和你說(shuō)的現(xiàn)象類似。如果再次出現(xiàn)你說(shuō)的問(wèn)題,切換到cmd窗口,按esc鍵可以取消暫停,試下是不是這個(gè)問(wèn)題。

如果還沒(méi)解決,建議重新創(chuàng)建一個(gè)空的webman項(xiàng)目,安裝webman/push試下,排除其它干擾。

  • meystack 2022-11-17

    感謝亮哥,我現(xiàn)在這個(gè)工程代碼寫的太多了,只能一點(diǎn)點(diǎn)排查,我新建項(xiàng)目也不可以。但是我用postman直接發(fā)送計(jì)算好的HTTP+data確正常,然后我用一個(gè)純新的環(huán)境測(cè)試了PHP7.3 PHP7.4發(fā)現(xiàn)是正常的,所以可能是我電腦更新某些補(bǔ)丁的問(wèn)題。

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??