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

是不是必須要在Worker onXXX事件回調(diào)方法里才能新建立連接?

zhouaini528

我的業(yè)務(wù)是用WS作為client端,我想在一個進(jìn)程進(jìn)行上成百上千的WS client連接, 但是這種連接是動態(tài)生成連接。根據(jù)文檔案例如下代碼:

$worker = new Worker();
$worker->onWorkerStart = function()
{
$con = new AsyncTcpConnection("ws://echo.websocket.org:80");

如果我想再主動連接一個WS。我的做法就是
$worker->onWorkerStart = function()
{
$con1 = new AsyncTcpConnection("ws://echo.websocket.org:80");
$con2 = new AsyncTcpConnection("ws://echo.websocket.org:80");

如果成百上千的主動連接,我的構(gòu)思是用定時器來檢測是否有主動連接需求
$worker->onWorkerStart = function(){
Timer::add(1, function() {
new AsyncTcpConnection("ws://echo.websocket.org:80");
});
}
進(jìn)程不重啟的情況下,通過定時檢查,來判斷是否有新的主動連接。
然后我的奇葩想法來了,因?yàn)橛虚]包又想簡化代碼結(jié)構(gòu),我已經(jīng)開啟了worker了,那么我是否不用再onXXX里去new AsyncTcpConnection ,在任何地方都可以new?我試過了不成功,所有想問問。

2409 1 0
1個回答

walkor 打賞

onWorkerStart運(yùn)行完之后,可以在任意的位置初始化AsyncTcpConnection 連接

  • zhouaini528 2020-10-09

    我測試了必須要在onWorkerStart function里new 才不會報錯。
    如下:
    $worker = new Worker();
    $worker->onWorkerStart = function()
    {
    $con = new AsyncTcpConnection("ws://echo.websocket.org:80");
    $con->connect();

    //同一作用域下 add timer 內(nèi)初始化對象要報錯。

    Timer::add(1, function() {
    $con = new AsyncTcpConnection("ws://echo.websocket.org:80");
    $con->connect();
    });

  • walkor 2020-10-09

    為什么不把報錯貼出來?

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