$client = stream_socket_client('***', $errno, $errmsg, 1, STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT);
// 推送的數(shù)據(jù),包含uid字段,表示是給這個(gè)uid推送
$data = array('uid' => $uid, 'type'=>$type, 'result' => $data);
// 發(fā)送數(shù)據(jù),注意5678端口是Text協(xié)議的端口,Text協(xié)議需要在數(shù)據(jù)末尾加上換行符
@fwrite($client, json_encode($data) . "\n");
$status = fread($client, 8192);
這是推送的代碼。但是我打印服務(wù)端日志返回的值是200 或者其他值 但是fread 獲取的值有時(shí)不準(zhǔn)確,不是完全不準(zhǔn)備,是偶爾,長(zhǎng)時(shí)間不推消息。突然去推就會(huì)這樣,推多幾次就沒問題了
| STREAM_CLIENT_PERSISTENT 刪掉試下,這個(gè)坑我遇到過,STREAM_CLIENT_PERSISTENT是發(fā)起持久連接,也就是下次再發(fā)起連接的時(shí)候會(huì)復(fù)用這個(gè)連接,但是我測(cè)試有時(shí)候會(huì)有問題,我猜測(cè)是因?yàn)檫@個(gè)連接已經(jīng)斷開了,php沒有檢測(cè)到,使用的時(shí)候就不行了。STREAM_CLIENT_PERSISTENT 刪掉就好了