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

關(guān)于“如何在php后端及時(shí)推送消息給客戶端”文章的疑問

蝸牛

http://wenda.workerman.net/?/question/508 這篇文章中,$inner_text_worker怎么知道$worker->onMessage里面的數(shù)據(jù)是否接收成功呢。意思就是$worker->onMessage已經(jīng)取到硬件返回的信息,那$inner_text_worker如何得到返回的值,而且$worker = new Worker('websocket://0.0.0.0:1234'); 和$inner_text_worker = new Worker('Text://0.0.0.0:5678');監(jiān)聽的是不同的端口,它們是異步通信的吧。

3413 7 0
7個(gè)回答

walkor 打賞

$worker = new Worker('websocket://0.0.0.0:1234');和$inner_text_worker = new Worker('Text://0.0.0.0:5678');監(jiān)聽的是不同的端口,但是是同一個(gè)進(jìn)程,同一個(gè)進(jìn)程間全局變量是可以互相訪問的,例如uid到連接對(duì)象的映射($worker->uidConnections)

  • 暫無評(píng)論
蝸牛
$worker->onWorkerStart = function($worker)
{
    $inner_text_worker = new Worker('Text://0.0.0.0:5678');
     $inner_text_worker->onMessage = function($connection, $buffer)use($worker)
     {
        global $worker;
        $data = json_decode($buffer, true);
        $uid = $data;
        $buffer = $data;
        $ret = sendMessageByUid($uid, $buffer);
        // $connection->send($ret ? 'ok' : 'fail');
        $connection->send($worker->data);//但發(fā)覺只能是第一次獲取到數(shù)據(jù),后面都是空的了。
     };
     $inner_text_worker->listen();
};
$worker->onConnect = function($connection)
{
    echo "new connection from ip " . $connection->getRemoteIp() . "\n";
};
$worker->uidConnections = array();
$worker->onMessage = function($connection, $data)use($worker)
{
     if(!isset($connection->uid))
     {
        $connection->uid = $data;
        $worker->uidConnections = $connection;
        return;
     }
     $worker->data = $data;//添加一個(gè)屬性
};

而且 $inner_text_worker = new Worker('Text://0.0.0.0:5678');第一次發(fā)送數(shù)據(jù)到$worker = new Worker('Text://0.0.0.0:1234');的時(shí)候$worker->data也是為空的,這樣也不符合要求。

  • 暫無評(píng)論
蝸牛

還有如果是多設(shè)備的情況,會(huì)不會(huì)有部分設(shè)備不能接收到數(shù)據(jù)呢?謝謝!

  • 暫無評(píng)論
walkor 打賞

不會(huì)

  • 暫無評(píng)論
蝸牛

那么$inner_text_worker如何能及時(shí)的收到$worker->onMessage里面發(fā)過來的數(shù)據(jù)呢?

  • 暫無評(píng)論
walkor 打賞

$inner_text_worker不會(huì)收到$worker->onMessage發(fā)來的數(shù)據(jù),但是$worker->onMessage收到的數(shù)據(jù)可以轉(zhuǎn)發(fā)給$inner_text_worker的連接。同樣的,反過來也可以。
這個(gè)例子實(shí)際上就是$inner_text_worker->onMessage收到的數(shù)據(jù)轉(zhuǎn)發(fā)給了$worker的連接,也就是轉(zhuǎn)發(fā)給了websocket的連接。

  • 暫無評(píng)論
蝸牛

還請(qǐng)老大在代碼上指點(diǎn)一二,謝謝。

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