当前位置:  开发笔记 > 编程语言 > 正文

用php写sokket连接第三方服务器,要保持连接不断,每三分钟向对方发一次心跳,php是单线程的,这个怎么才能实现呢?

业务流程是这样的,我们php服务器用socket连接对方服务器,对方服务器会不定时的发消息给我们php服务器,所以我们php需要一直read,read的同时还需要每三分钟发一次心跳给对方,当php一直在read,对方没有消息发
业务流程是这样的,我们php服务器用socket连接对方服务器,对方服务器会不定时的发消息给我们php服务器,所以我们php需要一直read,read的同时还需要每三分钟发一次心跳给对方,当php一直在read,对方没有消息发过来的时候,php一直在等,怎么才能保证每三分钟发一次心跳?

回复内容:

业务流程是这样的,我们php服务器用socket连接对方服务器,对方服务器会不定时的发消息给我们php服务器,所以我们php需要一直read,read的同时还需要每三分钟发一次心跳给对方,当php一直在read,对方没有消息发过来的时候,php一直在等,怎么才能保证每三分钟发一次心跳?

一般 这个用php来做不是很好吧。

延时3分钟 sleep(3)
一直执行脚本 set_time_limit(0)
与客户端断开继续执行 ignore_user_abort(0)

可以考虑使用swoole

你read的同时还要发心跳给它,用php-cli来做吧

swoole可以轻松搞定你的需求

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有