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

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

mgzhenhong

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

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

\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);
}
2504 2 0
2個(gè)回答

walkor 打賞

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

  • 暫無評論
mgzhenhong

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

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