比如這個簡單的例子
$http_worker->onMessage = function(TcpConnection $connection, Request $request)
{
$req_id = $connection->id; //這樣可以獲取當當前連接ID
};
但是我的程序封裝了很多代碼/類/函數(shù),我的程序需要兼容傳統(tǒng)php-fpm模式,我想在某個函數(shù)里面獲取到這個ID,該怎么實現(xiàn)呢,不可能一直傳參下去吧?像swoole就可以通過\Co::getCid() 在任何地方都可以獲取到當前的攜程ID,workerman應(yīng)該怎么實現(xiàn)呢?
初次使用workerman,望各位大佬能幫忙解答一下,或者有其它更好的辦法么?
這就是php基本用法吧
class Co {
public static $id;
public static function id($id)
{
if ($id) {
static::$id = $id;
}
return static::$id;
}
}
$http_worker->onMessage = function(TcpConnection $connection, Request $request)
{
// 業(yè)務(wù)開始時設(shè)置id
\Co::id($connection->id);
// 真實業(yè)務(wù)省略...
// 獲取id
echo \Co::id();
};
多謝。剛從swoole過來,swoole有協(xié)程,不能放在靜態(tài)變量里面。才發(fā)現(xiàn)workerman是一個進程同時只執(zhí)行一個請求的,這樣就可以