你好,我遇到个两个worker之间通信的问题

张坤

推送消息的代码是这样的

$client = stream_socket_client('tcp://127.0.0.1:5248', $errno, $errmsg, 1,STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT);                 
 fwrite($client, json_encode($send_data)."\n");

作为服务器的监听5248端口,如果关闭服务器后,这个由于连接不上,弹出个warning

PHP Warning: stream_socket_client(): unable to connect to tcp://127.0.0.1:5248 (Connection refused)

但是服务端重启后,虽然不弹出警告了,但服务端也收不到消息了,只有把作为客户端的重启。
这个怎么解决呢?
万分感谢~

2947 3 0
3个回答

walkor

应该不会有这种问题,不过你可以把STREAM_CLIENT_PERSISTEN去掉试下,去掉后应该能解决。
STREAM_CLIENT_PERSISTEN能够让phpfpm和某个服务端保持长连接,如果通讯量不大,每秒几十几百请求这种,可以不用加这个选项

  • 暂无评论
张坤

嗯,成功,非常感谢

  • 暂无评论
walkor

不客气

  • 暂无评论
年代过于久远,无法发表回答
🔝