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

超全局?jǐn)?shù)組$_SERVER

$_SERVER是什么

GatewayWorker中的超全局?jǐn)?shù)組$_SERVER包含了5個元素,分別是:

  • REMOTE_ADDR // 客戶端ip(如果客戶端處于局域網(wǎng),則是客戶端所在局域網(wǎng)的出口ip)
  • REMOTE_PORT // 客戶端端口(如果客戶端處于局域網(wǎng),則是客戶端所在局域網(wǎng)的出口端口)
  • GATEWAY_ADDR // gateway所在服務(wù)器的ip
  • GATEWAY_PORT // geteway監(jiān)聽的端口,這對于多端口應(yīng)用中在Event.php里區(qū)分客戶端連的是哪個端口非常有用
  • GATEWAY_CLIENT_ID // 全局唯一的客戶端id,也就是client_id

注意:$_SERVER 無法在Events::onWorkerStart回調(diào)里獲取

$_SERVER使用場景

當(dāng)需要在Event.php中獲得客戶端的ip及端口信息時,可以使用$_SERVER['REMOTE_ADDR']$_SERVER['REMOTE_PORT']獲得。當(dāng)想在某個函數(shù)邏輯處理時獲得當(dāng)前客戶端的client_id時,可以使用$_SERVER['GATEWAY_CLIENT_ID']方便的獲得

注意:Events::onWorkerStart Events::onWorkerStop 中無法使用$_SERVER

$_SERVER原理

在WorkerMan的Gateway/BusinessWorker模型中,每個客戶端都會連接在gateway進(jìn)程上,當(dāng)gateway進(jìn)程收到客戶端的數(shù)據(jù)時,會將客戶端的ip端口及client_id連通消息傳遞給worker進(jìn)程,worker進(jìn)程初始化$_SERVER數(shù)組便可以使用了。

示例(向客戶端發(fā)送客戶端ip)

class Events
{
    public static function onMessage($client_id, $data)
    {
        Gateway::sendToClient($client_id, $_SERVER['REMOTE_ADDR']);
    }
}
編輯于2024-03-13 17:37:33 完善本頁 +發(fā)起討論
贊助商