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

socket客戶端的心跳數(shù)據(jù)處理問題

dreamboycx

現(xiàn)在我用workerman搭建了一個socket服務端,client.php客戶端作為微信公眾號的地址,現(xiàn)在服務端有個心跳檢測,數(shù)據(jù)是{"type":"ping"},我建立了長連接后接收服務端的socket數(shù)據(jù),我這樣寫的:

$in = '{"type":"test"}';
$out = '';

if(!socket_write($socket, $in, strlen($in))) {
    $errStr = "socket_write() failed: reason: " . socket_strerror($socket);
    echo http_text($FromUserName,$ToUserName,$errStr);exit;
}
$infoStr = '';
while($out = socket_read($socket, 8192)) {
    $infoStr = "接收服務器回傳信息成功!\n";
    $infoStr .=  "接受的內(nèi)容為:".$out;
}

echo http_text($FromUserName,$ToUserName,$infoStr);//回復微信消息

socket_close($socket);

在while循環(huán)那里一直接收心跳數(shù)據(jù),下面的回復微信公從號的信息無法執(zhí)行,導致公眾號無法服務,怎么能避免接收心跳數(shù)據(jù)呢?不限入死循環(huán),我把while循環(huán)去掉了,直接用$out = socket_read($socket, 8192);只要這句話也不行,想不明白,不知道為什么?請老大指點迷津。。。

3752 1 0
1個回答

walkor 打賞

socket_read后判斷下
是否讀到了自己要的數(shù)據(jù),如果讀到了就斷開。
沒讀到就while循環(huán)讀。

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