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

關(guān)于AsyncTcpConnection,異步阻塞問題

h8h8
$socket     = new AsyncTcpConnection($tcp); 

$socket->onConnect = function($socket) use($db)
        {
           //在這里循環(huán)發(fā)送消息,發(fā)現(xiàn)全部循環(huán)完畢后,才接收到返回結(jié)果,在循環(huán)過程中,全部是阻塞的嗎?
            for($i = 0; $i < 1000; $i++)
            {
                 $request = send_datas1($db);
                 //print_r($request);
                 $socket->send($request);                  
            }                                  
        };

        //服務(wù)器響應(yīng),接收返回結(jié)果
        $socket->onMessage = function($socket, $result) use($db)
        {
            try
            {
                print_r($result);
                $db->update($table)->cols($result)->where()->query();
            }
            catch(\Exception $e)
            {
                print_r($e->getMessage());              
            }                                                    
        };

        $socket->onClose = function($socket) {
            // 如果連接斷開,則在1秒后重連
            $socket->reConnect(1);
        };

        $socket->onError = function($socket, $err_code, $err_msg)
        {

        };
        // 執(zhí)行異步鏈接
        $socket->connect();
5014 5 0
5個回答

walkor 打賞

循環(huán)過程中,代碼執(zhí)行環(huán)境一直在這個循環(huán)里,workerman一直沒有得到運行控制權(quán),workerman就不會接收到數(shù)據(jù),不會觸發(fā)onmessage。你這里只有當(dāng)onConnect里所有代碼執(zhí)行完畢,workerman才會獲得控制權(quán),才會接收數(shù)據(jù)。

  • 暫無評論
h8h8

如果做到實時接時,改成這樣嗎?

for($i = 0; $i < 1000; $i++)
{
    $socket = new AsyncTcpConnection($tcp);

    $socket->onConnect = function($socket) use($db)
    {
        $request = send_datas1($db, $i);
        $socket->send($request);
    };

    $socket->onMessage = function($socket, $result) use($db)
    {
        print_r($result);
    };
    // 執(zhí)行異步鏈接
    $socket->connect();
}

這樣會不會建立1000個鏈接,導(dǎo)致性能下降?

  • 暫無評論
walkor 打賞

效果一樣,for循環(huán)里執(zhí)行完畢才能有機會觸發(fā)onmessage。

  • 暫無評論
walkor 打賞

上面兩個for循環(huán)執(zhí)行很快的,可能就0.001秒的時間,我覺得你沒必要糾結(jié)這點時間。

  • 暫無評論
h8h8

謝謝!?。。?/p>

  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??