現(xiàn)在我用workerman搭建了一個(gè)socket服務(wù)端,client.php客戶端作為微信公眾號(hào)的地址,現(xiàn)在服務(wù)端有個(gè)心跳檢測(cè),數(shù)據(jù)是{"type":"ping"},我建立了長(zhǎng)連接后接收服務(wù)端的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 = "接收服務(wù)器回傳信息成功!\n";
$infoStr .= "接受的內(nèi)容為:".$out;
}
echo http_text($FromUserName,$ToUserName,$infoStr);//回復(fù)微信消息
socket_close($socket);
在while循環(huán)那里一直接收心跳數(shù)據(jù),下面的回復(fù)微信公從號(hào)的信息無(wú)法執(zhí)行,導(dǎo)致公眾號(hào)無(wú)法服務(wù),怎么能避免接收心跳數(shù)據(jù)呢?不限入死循環(huán),我把while循環(huán)去掉了,直接用$out = socket_read($socket, 8192);只要這句話也不行,想不明白,不知道為什么?請(qǐng)老大指點(diǎn)迷津。。。