大家好,剛接觸GatewayWorer,我是用TP5框架+GatewayWorker的,
?
想問一下,GatewayWorer的心跳檢測(客戶端定時發(fā)送心跳)給服務(wù)端,那么,下面這些心跳代碼,
?$gateway = new Gateway("Websocket://0.0.0.0:8585");
$gateway->pingInterval = 55;
$gateway->pingNotResponseLimit = 1;
$gateway->pingData = '';
我要寫在哪,看手冊說是寫在start_gateway.php // gateway進(jìn)程啟動腳本,包括端口號等設(shè)置
?
是寫在進(jìn)程啟動腳本里嗎?
?
2.定時器的代碼,通常是應(yīng)該寫在TP的控制器里,還是寫在gatewayworker的events.php文件里呢?
?
謝謝
1、是寫在進(jìn)程啟動腳本之中。
2、第二句話前半句說的是啥呢?心跳檢測本身利用的就是定時器機(jī)制來進(jìn)行兩端的數(shù)據(jù)通信的。
3、心跳檢測的邏輯代碼段隸屬啟動腳本,對于thinkphp而言,是可以將一個控制器作為啟動腳本來運作的【注意:這種角色的控制器不要暴露在外】,所以心跳檢測可以寫在thinkphp的控制器里。比如配置文件里新增一個映射即可,具體參看thinkphp官方手冊。
謝謝大佬的回復(fù),第二點是我沒有說清楚,我想問的是,定時器的代碼,通常是應(yīng)該寫在TP的控制器里,還是寫在gatewayworker的events.php文件里呢?感謝
首先都可以寫呢,具體看你用定時器做什么吧,比如說:
1、官方的gatewayworker框架的心跳檢測用的就是定時器做的,定時器的邏輯封裝在幾個核心類中,然后我們基于此定制啟動腳本【當(dāng)然我們一般都是定制自己服務(wù)的啟動腳本】,啟動腳本里onXXX回調(diào)就是編寫定時器的地方,同時上面說了啟動腳本是可以作為thinkphp的控制器來運作的。
2、通常我們普遍都是在events.php里處理業(yè)務(wù)代碼,業(yè)務(wù)用到定時器地方那就寫在這里。
3、注意一個就是:定時器是針對當(dāng)前進(jìn)程而言,一般要寫到onXXX回調(diào)里。