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

webman框架下,在new Crontab的回調(diào)函數(shù)里能發(fā)送成功數(shù)據(jù),但fread接收不到結(jié)果。

WatcherLuo

代碼如下:
new Crontab('1 *', function(){
// 建立socket連接到內(nèi)部推送端口
$client = stream_socket_client('tcp://127.0.0.1:5678', $errno, $errmsg, 1);
// 推送的數(shù)據(jù),包含uid字段,表示是給這個(gè)uid推送
$data = array('uid'=>'uid1', 'percent'=>'88%');
// 發(fā)送數(shù)據(jù),注意5678端口是Text協(xié)議的端口,Text協(xié)議需要在數(shù)據(jù)末尾加上換行符
fwrite($client, json_encode($data)."\n");
// 讀取推送結(jié)果
echo fread($client, 8192);
});

通過(guò)日志分析調(diào)用fwrite能成功發(fā)送數(shù)據(jù),在127.0.0.1服務(wù)端onMessage回調(diào)里也能正常接收到數(shù)據(jù),調(diào)用$connection->send("hello\n");的返回值為true,那表示數(shù)據(jù)已經(jīng)成功寫(xiě)入到該連接的操作系統(tǒng)層的socket發(fā)送緩沖區(qū),但fread接收不到結(jié)果。在控制器里調(diào)用fwrite后fread是能正常接收到結(jié)果。不知道什么原因,求解。

1091 2 0
2個(gè)回答

phpcreeper

直觀上看參數(shù) 1 * 格式應(yīng)該是錯(cuò)誤的,所以示例的定時(shí)器理論上說(shuō)壓根兒應(yīng)該就沒(méi)有啟動(dòng)或者說(shuō)會(huì)被攔截拋異常什么的,但是標(biāo)題中卻描述 new Crontab的回調(diào)函數(shù)里能發(fā)送成功數(shù)據(jù),先不說(shuō)回調(diào)函數(shù)本身的邏輯吧,這個(gè)你確定回調(diào)函數(shù)已經(jīng)成功被觸發(fā)執(zhí)行了?

  • WatcherLuo 2022-08-10

    這算是一份偽代碼,刪除了一些讀取數(shù)據(jù)庫(kù)的邏輯,定時(shí)規(guī)則是讀數(shù)據(jù)庫(kù)配置的??梢园? 替換成/5 *,定時(shí)器是執(zhí)行了的,已經(jīng)有打印出日志。

  • WatcherLuo 2022-08-10

    評(píng)論文本框發(fā)不了,會(huì)替換掉,定時(shí)規(guī)則是沒(méi)問(wèn)題,定時(shí)器有執(zhí)行

  • phpcreeper 2022-08-10

    關(guān)于你所描述的格式我這里均不支持,不清楚是不是Crontab庫(kù)版本的原因,依據(jù)手冊(cè)格式好解決,那就進(jìn)一步看:示例中的回調(diào)代碼邏輯看上去也沒(méi)有什么大問(wèn)題,粗暴自測(cè)也未見(jiàn)異常,不過(guò)仍有幾處地方需要注意,調(diào)整下試試看吧:
    1、stream_socket_client的第4個(gè)參數(shù)看你設(shè)定的連接超時(shí)是1秒,這個(gè)感覺(jué)太小了,可以調(diào)整為5秒試試看;
    2、stream_set_blocking($client, 1);
    3、記得末尾調(diào)用fclose($client);

ichynul

好像是文件操作有緩存

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