重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍了workerman怎样保持连接,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比石拐网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式石拐网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖石拐地区。费用合理售后完善,10多年实体公司更值得信赖。
正常的情况客户端断开连接会向服务端发送一个fin包,服务端收到fin包后得知客户端连接断开,则立刻触发onClose事件回调。
但是有些极端情况如客户端掉电、网络关闭、拔网线、路由故障等,这些极端情况客户端无法发送fin包给服务端,服务端便无法知道连接已经断开。如果客户端与服务端定时有心跳数据传输,则会比较及时的发现连接断开,触发onClose事件回调。
另外路由节点防火墙会关闭长时间不通讯的socket连接,导致socket长连接断开。所以需要客户端与服务端定时发送心跳数据保持连接不被断开。
GatewayWorker中如何配置心跳检测?
目前GatewayWorker支持两种心跳检测,服务端设定多少秒内没收到心跳关闭连接(推荐),同时也支持服务端定时向客户端发送心跳数据(不推荐)。
客户端定时发送心跳(推荐)
客户端定时(间隔最好小于60秒)向服务端发送心跳。服务端类似以下配置:
$gateway = new Gateway("Websocket://0.0.0.0:8585"); $gateway->pingInterval = 55; $gateway->pingNotResponseLimit = 1; $gateway->pingData = '';
感谢你能够认真阅读完这篇文章,希望小编分享workerman怎样保持连接内容对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,遇到问题就找创新互联,详细的解决方法等着你来学习!