国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

Gatewaywork框架中使用AsyncTcpConnection的問題

daling

看完兩個手冊,Gatewaywork好用,還有個問題,需要在bussinessWorker進(jìn)程onWorkerStart時使用到AsyncTcpConnection異步連接類,并在AsyncTcpConnection的Onmessage回調(diào)函數(shù)中組播處理后的數(shù)據(jù),如何在events.php中使用AsyncTcpConnection,并在AsyncTcpConnection中使用sendToGroup組播函數(shù)。

有沒有好的方法或思路?

因?yàn)锳syncTcpConnection的連接是一直保持在整個Gatewaywork生命周期的,直接在start_businessworker.php無法直接調(diào)用Gateway::sendToGroup(),在Events好像也沒法直接創(chuàng)建AsyncTcpConnection。

6288 7 1
7個回答

walkor 打賞

Events 直接創(chuàng)建AsyncTcpConnection鏈接就好了,一樣的

  • 暫無評論
daling

@walkor ,對php語法不熟,手冊的示例代碼無法直接搬去用,如何在events.php中初始化一個AsyncTcpConnection鏈接。謝謝

  • 暫無評論
daling

找到了,謝謝。在events.php中也有個businessWorker進(jìn)程的onWorkerStart 事件,可以實(shí)現(xiàn),但是如果設(shè)置了多個businessWorker進(jìn)程,會啟動多個onWorkerStart 事件,這就導(dǎo)致會創(chuàng)建多個AsyncTcpConnection鏈接,而我只需要也只能保持一個AsyncTcpConnection鏈接,應(yīng)該在哪里創(chuàng)建這個AsyncTcpConnection鏈接呢?并且需要在AsyncTcpConnection里實(shí)現(xiàn)sendToGroup

  • 暫無評論
walkor 打賞

手冊:http://doc3.workerman.net/worker-development/workerid.html
可以根據(jù)容器id來設(shè)置異步鏈接,比如只在0號businessWorker進(jìn)程設(shè)置異步鏈接

class Events {
    public static function ($businessWorker) {
        if ($businessWorker->id == 0) {
            $con = new AsyncTcpConnection('.....');
        }
      }
...
}
  • 暫無評論
daling

可用,謝謝,具體性能測試后再貼上來,翻遍所有手冊,因?yàn)間w允許一個client加入多個廣播組,沒看到可以有函數(shù)可以調(diào)某個client所加入的組,因?yàn)闃I(yè)務(wù)要求client只能加入一個組,好像只能先遍歷所有廣播組,再getClientSessionsByGroup找出已經(jīng)加入的組,然后leaveGroup,再joinGroup新的組,好像沒有效率的樣子。

  • 暫無評論
walkor 打賞

client加入了哪些組直接放session里就好了。client_id自身的會話信息都可以放到session里。

$_SESSION = group_1;
$_SESSION = group_2;

然后直接讀$_SESSION就得到這個client_id加入的所有的組了

  • 暫無評論
daling

懂了,謝謝

  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??