GatewayWorer的心跳检测应该写在哪个文件里呢?

bv

大家好,刚接触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文件里呢?
 
谢谢

3603 1 0
1个回答

blogdaren

1、是写在进程启动脚本之中。
2、第二句话前半句说的是啥呢?心跳检测本身利用的就是定时器机制来进行两端的数据通信的。
3、心跳检测的逻辑代码段隶属启动脚本,对于thinkphp而言,是可以将一个控制器作为启动脚本来运作的【注意:这种角色的控制器不要暴露在外】,所以心跳检测可以写在thinkphp的控制器里。比如配置文件里新增一个映射即可,具体参看thinkphp官方手册。

  • bv 2018-11-02

    谢谢大佬的回复,第二点是我没有说清楚,我想问的是,定时器的代码,通常是应该写在TP的控制器里,还是写在gatewayworker的events.php文件里呢?感谢

  • blogdaren 2018-11-02

    首先都可以写呢,具体看你用定时器做什么吧,比如说:
    1、官方的gatewayworker框架的心跳检测用的就是定时器做的,定时器的逻辑封装在几个核心类中,然后我们基于此定制启动脚本【当然我们一般都是定制自己服务的启动脚本】,启动脚本里onXXX回调就是编写定时器的地方,同时上面说了启动脚本是可以作为thinkphp的控制器来运作的。
    2、通常我们普遍都是在events.php里处理业务代码,业务用到定时器地方那就写在这里。
    3、注意一个就是:定时器是针对当前进程而言,一般要写到onXXX回调里。

  • bv 2018-11-02

    @614:感谢大佬在百忙之中给予这么详细解答,祝周末快乐,谢谢。

  • blogdaren 2018-11-02

    @4864: 不客气,周末愉快~

年代过于久远,无法发表回答
🔝