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

客戶端使用socket_write()定時(shí)發(fā)送心跳以后,就不能使用socket_recv()接收workerman主動(dòng)發(fā)送的數(shù)據(jù)

學(xué)海無涯

客戶端使用socket_write()定時(shí)發(fā)送心跳以后,就不能使用socket_recv()接收workerman主動(dòng)發(fā)送的數(shù)據(jù):
我是使用客戶端主動(dòng)發(fā)送數(shù)據(jù)給workerman的服務(wù)器端,下面是代碼

do{
    $buff = "";
    if((socket_recv($socket, $buf, 1024, MSG_PEEK)) != false)  chuli($buff);
        $cmd = '{"head":{"heart":"idle"}'."\n";
    if(socket_write($socket, $cmd, strlen($cmd))==false){ 
            echo 'SEND '.date("Y-m-d H:i:s")." ".$cmd."\n";
        connect();  
    }
    sleep(15);
}while(TRUE);

這個(gè)只能客戶端發(fā)送數(shù)據(jù),服務(wù)端回復(fù)一條數(shù)據(jù),當(dāng)服務(wù)端主動(dòng)發(fā)送一條數(shù)據(jù)的時(shí)候就無法通過socket_recv()來接收這條主動(dòng)發(fā)送的數(shù)據(jù)了

5193 2 0
2個(gè)回答

six

if((socket_recv($socket, $buf, 1024, MSG_PEEK)) != false)
看了眼php手冊(cè),感覺MSG_PEEK應(yīng)該改成MSG_WAITALL

  • 學(xué)海無涯 2018-02-02

    還是不行,服務(wù)器發(fā)送的數(shù)據(jù)是可以接收到的,但不是經(jīng)過socket_recv()來接收的,而是直接輸出

學(xué)海無涯
do{
    $buff = "";
    //if(socket_recv($socket, $buf, 4096, 0)) chuli($buff);
    if($buff = socket_read($socket, 1024, PHP_NORMAL_READ)) chuli($buff);
    pcntl_signal_dispatch();
    if($g_sessionID != "") {
        $cmd = '{"head":{"heart":"idle"}'."\n";
        if(socket_write($socket, $cmd, strlen($cmd))==false){
            echo 'SEND '.date("Y-m-d H:i:s")." ".$cmd."\n";
            connect();
        }
    }
    sleep(15);
}while(TRUE);

改成上面的這種,是可以,但是服務(wù)器主動(dòng)發(fā)送的數(shù)據(jù)接收時(shí)會(huì)隨著時(shí)間的增長(zhǎng)而增加

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