大家好,刚接触GatewayWorer,我是用TP5框架+GatewayWorker的,
想问一下,GatewayWorer的心跳检测(客户端定时发送心跳)给服务端,那么,下面这些心跳代码,
$gateway = new Gateway("Websocket://0.0.0.0:8585");
$gateway->pingInterval = 55;
$gateway->pingNotResponseLimit = 1;
$gateway->pingData = '';
我要写在哪,看手册说是写在start_gateway.php // gateway进程启动脚本,包括端口号等设置
是写在进程启动脚本里吗?
2.定时器的代码,通常是应该写在TP的控制器里,还是写在gatewayworker的events.php文件里呢?
谢谢
1、是写在进程启动脚本之中。
2、第二句话前半句说的是啥呢?心跳检测本身利用的就是定时器机制来进行两端的数据通信的。
3、心跳检测的逻辑代码段隶属启动脚本,对于thinkphp而言,是可以将一个控制器作为启动脚本来运作的【注意:这种角色的控制器不要暴露在外】,所以心跳检测可以写在thinkphp的控制器里。比如配置文件里新增一个映射即可,具体参看thinkphp官方手册。
谢谢大佬的回复,第二点是我没有说清楚,我想问的是,定时器的代码,通常是应该写在TP的控制器里,还是写在gatewayworker的events.php文件里呢?感谢
首先都可以写呢,具体看你用定时器做什么吧,比如说:
1、官方的gatewayworker框架的心跳检测用的就是定时器做的,定时器的逻辑封装在几个核心类中,然后我们基于此定制启动脚本【当然我们一般都是定制自己服务的启动脚本】,启动脚本里onXXX回调就是编写定时器的地方,同时上面说了启动脚本是可以作为thinkphp的控制器来运作的。
2、通常我们普遍都是在events.php里处理业务代码,业务用到定时器地方那就写在这里。
3、注意一个就是:定时器是针对当前进程而言,一般要写到onXXX回调里。
@614:感谢大佬在百忙之中给予这么详细解答,祝周末快乐,谢谢。
@4864: 不客气,周末愉快~