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

第三方系統(tǒng)調(diào)用text協(xié)議通信超時(shí)

追夢隨想
// 建立socket連接到內(nèi)部推送端口
$client = stream_socket_client('tcp://192.168.31.214:1230', $errno, $errmsg);
var_dump($errno, $errmsg);
// 推送的數(shù)據(jù),包含uid字段,表示是給這個uid推送

$data = array('action'=>'sendToAll', 'info'=>'哈哈哈哈哈哈哈');
// $data = array('action'=>'editUser', 'info'=>'哈哈哈哈哈哈哈');

// 發(fā)送數(shù)據(jù),注意5678端口是Text協(xié)議的端口,Text協(xié)議需要在數(shù)據(jù)末尾加上換行符
fwrite($client, json_encode($data)."\n");
// 讀取推送結(jié)果
$res = fread($client, 8192);
fclose($client);?//群發(fā)消息
            case 'sendToAll':
                $user_id = isset($message) ? $message : 0;
                if (empty($user_id)) return self::format_return_message('error', '缺少參數(shù)');

                Gateway::sendToAll(self::format_return_message('message', $message));
                break;

如上代碼,如果去掉判斷直接發(fā)送給客戶端就正常,如果加了判斷那就不行,一會兒就超時(shí)了,請問這是什么情況?

3603 1 0
1個回答

latin

這個很好理解吧,
// 讀取推送結(jié)果
$res = fread($client, 8192);客戶端這邊在等待服務(wù)端返回結(jié)果,然后服務(wù)端走到
if (empty($user_id)) return self::format_return_message('error', '缺少參數(shù)');的時(shí)候,并沒有給這個fread的客戶端推送結(jié)果,那fread就一直等待了,就超時(shí)了。
?
?
?

  • 追夢隨想 2018-10-17

    這么說的話第三方調(diào)用的話,也必須發(fā)消息給客戶端了?如果我只需要更改部分?jǐn)?shù)據(jù)而不需要發(fā)消息給客戶端的話,那該如何解決?請教下

  • latin 2018-10-17

    給fread的那個客戶端發(fā)送消息就行了

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