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

建議在 TcpConnection 類(lèi)中判斷自定義協(xié)議 decode 方法的返回是否為false, 決定是否調(diào)用 onMessage 回調(diào)

mgzhenhong

想提交 PullRequest, 作者又說(shuō)github不給國(guó)內(nèi)用, 只能發(fā)在這里.
希望能接納.

如果沒(méi)有這個(gè)功能, 只能在協(xié)議 decode 方法中返回false, 在 onMessage 回調(diào)中再做判斷, 這樣的話(huà) onMessage 回調(diào)函數(shù)要做參數(shù)類(lèi)型約束, 就不好做了.

\call_user_func($this->onMessage, $this, $parser::decode($one_request_buffer, $this));

修改為

if(false !== $decodeResult = $parser::decode($one_request_buffer, $this))
{
    \call_user_func($this->onMessage, $this, $decodeResult);
}
2643 2 0
2個(gè)回答

walkor 打賞

底層框架不好做這個(gè)事情,這樣會(huì)導(dǎo)致類(lèi)似丟包的問(wèn)題。會(huì)有一大批開(kāi)發(fā)者過(guò)來(lái)問(wèn)為什么前端發(fā)送了消息,后端onMessage沒(méi)觸發(fā)。而且有些業(yè)務(wù)是需要處理false這種情況的,直接忽略也不妥。如果你需要類(lèi)似的功能建議直接在onMessage里封裝一層,先判斷是否為false,然后再?zèng)Q定是否調(diào)用你真正的處理函數(shù)。

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

謝謝回復(fù), 我現(xiàn)在就是這樣做的.

$server->onMessage = function(TcpConnection $conn, $request)
{
    if($request === false) return;
    $response = Processor::Run($request, 'http');
    $conn->send($response);
};
  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??