我需要將一些數據從PHP服務器發送到節點服務器。在再次寫入之前等待socket_write完成
這裏是我迄今爲止在PHP端的簡化版本:
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($socket, '127.0.0.1', '3000');
socket_write($socket, "Hello World", 11);
socket_close($socket);
運行這段代碼成功地將消息發送到我的節點服務器並輸出。
但是我需要發送多個消息回到套接字。我實際上需要發送數千個響應。但如果我打電話給socket_write()
功能的循環中,像這樣:
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($socket, '127.0.0.1', '3000');
for($i=0;$i<1000;$i++){
socket_write($socket, "Hello World", 11);
}
socket_close($socket);
似乎一起追加的所有數據,並一次性在腳本結束髮送。我需要實時發回數據。有什麼辦法可以在PHP中做到這一點?
你的套接字發送成功的答案在哪裏?如何確保資源可用?發送,取得成功的消息,再次發送。如果你不需要回答爲什麼使用套接字?作爲靜態文件。 – dsgdfg
@dsgdfg我不需要收到節點服務器收到數據的確認信息。如果與套接字的連接失敗,我會拋出異常 –
@dsgdfg您認爲我應該讓Node服務器返回成功響應嗎?也許這將是我唯一的方式告訴PHP,去循環的下一次迭代是很酷 –