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

PHPSOCKETIO中定時器和on函數(shù)的回調(diào)不在同一進(jìn)程如何優(yōu)雅地處理?

Nathan
<?php
use Workerman\Worker;
use Workerman\WebServer;
use Workerman\Autoloader;
use PHPSocketIO\SocketIO;
use Workerman\Lib\Timer;

// composer autoload
require_once __DIR__ . '/../../vendor/autoload.php';

$io = new SocketIO(2020);

class Data
{
    static $_instance = null;
    public static function instance(){
        if(self::$_instance == null)
            self::$_instance = new Data();
        return self::$_instance;
    }

    // ->{id1,id2,id3}
    public $match_quque = array();

    // ->$socket
    public $uid_mapping = array();
}

// 500ms檢測一次匹配隊列
Timer::add(0.5,function(){
    var_dump(Data::instance()->match_quque);
        print("my pid == ".getmypid());

});

$io->on('connection', function($socket)use($io){
    $socket->on('match', function ($data)use($socket){
        Data::instance()->match_quque[] = 1;
        print("my pid == ".getmypid());
        var_dump(Data::instance()->match_quque);
    });

});

if (!defined('GLOBAL_START')) {
    Worker::runAll();
}

// 打印出來的PID是不一樣的 導(dǎo)致我無法在 on的回調(diào)中和定時器中共享同一份數(shù)據(jù)

3741 3 0
3個回答

walkor 打賞

根據(jù)手冊,定時器要在onXXX函數(shù)里設(shè)置,在onXXXX外部設(shè)置屬于主進(jìn)程的定時器,所以屬于不同進(jìn)程。

你可以在
$io->on('workerStart', function(){});
里設(shè)置定時器

  • 暫無評論
Nathan

謝謝你

  • 暫無評論
walkor 打賞

不客氣

  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??
<label id="ybcwi"></label>
    1. <bdo id="ybcwi"><meter id="ybcwi"></meter></bdo>
        <li id="ybcwi"><meter id="ybcwi"></meter></li>