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

gateway中這樣使用mysql正確么

程序gg了

start_gateway.php代碼:

<?php 
use \Workerman\Worker;
use \Workerman\WebServer;
use \GatewayWorker\Gateway;
use \GatewayWorker\BusinessWorker;
use \Workerman\Autoloader;

// 自動加載類
require_once __DIR__ . '/../../vendor/autoload.php';

// gateway 進(jìn)程,這里使用Text協(xié)議,可以用telnet測試
// $gateway = new Gateway("tcp://0.0.0.0:8282");
$gateway = new Gateway("websocket://0.0.0.0:2000");
// gateway名稱,status方便查看
$gateway->name = 'Device';
// gateway進(jìn)程數(shù)
$gateway->count = 1;
// 本機(jī)ip,分布式部署時使用內(nèi)網(wǎng)ip
$gateway->lanIp = '127.0.0.1';
// 內(nèi)部通訊起始端口,假如$gateway->count=4,起始端口為4000
// 則一般會使用4000 4001 4002 4003 4個端口作為內(nèi)部通訊端口 
$gateway->startPort = 2900;
// 服務(wù)注冊地址
$gateway->registerAddress = '127.0.0.1:1238';

// 心跳間隔
$gateway->pingInterval = 10;
$gateway->pingNotResponseLimit = 1;
// 心跳數(shù)據(jù)
//$gateway->pingData = '{"type":"ping"}';
$gateway->pingData = '';

$db = new \Workerman\MySQL\Connection('host', '3306', 'username', 'password', 'dbName');

// 當(dāng)客戶端連接上來時,設(shè)置連接的onWebSocketConnect,即在websocket握手時的回調(diào)
$gateway->onConnect = function($connection)
{
    $connection->onWebSocketConnect = function($connection , $http_header)
    {
        global $db;
        // $_SERVER 可用這里判斷連接來源是否合法,不合法就關(guān)掉連接
        try
        {
            // 查詢數(shù)據(jù)庫設(shè)備Token是否存在
            // 查詢數(shù)據(jù)庫設(shè)備Token是否存在
            // 查詢數(shù)據(jù)庫設(shè)備Token是否存在
            // 查詢數(shù)據(jù)庫設(shè)備Token是否存在
            // 查詢數(shù)據(jù)庫設(shè)備Token是否存在
            // 查詢數(shù)據(jù)庫設(shè)備Token是否存在
        }
        catch (\Exception $e)
        {
            echo $e->getMessage();
            $connection->close();
        }
    };
}; 

// 如果不是在根目錄啟動,則運行runAll方法
if(!defined('GLOBAL_START'))
{
    Worker::runAll();
}

events.php 代碼

<?php
/**
 * 用于檢測業(yè)務(wù)代碼死循環(huán)或者長時間阻塞等問題
 * 如果發(fā)現(xiàn)業(yè)務(wù)卡死,可以將下面declare打開(去掉//注釋),并執(zhí)行php start.php reload
 * 然后觀察一段時間workerman.log看是否有process_timeout異常
 */
//declare(ticks=1);

use \GatewayWorker\Lib\Gateway;
use Workerman\Worker;
class Events
{
    public static $db = null;

    public static function onWorkerStart($worker)
    {
        self::$db = new \Workerman\MySQL\Connection('host', '3306', 'username', 'password', 'dbName');
    }

    // 當(dāng)客戶端連接時觸發(fā)
    public static function onConnect($client_id)
    {
        // 向當(dāng)前client_id發(fā)送數(shù)據(jù)
        Gateway::sendToClient($client_id, "Hello $client_id\r\n");
        // 向所有人發(fā)送
        Gateway::sendToAll("$client_id login\r\n");
    }

    // 當(dāng)客戶端發(fā)來消息時觸發(fā)
    public static function onMessage($client_id, $message)
    {
        // 設(shè)置workerman處理一定請求后重啟當(dāng)前進(jìn)程
        static $request_count;
        if(++$request_count > 100)
        {
            // 請求數(shù)達(dá)到10000后退出當(dāng)前進(jìn)程,主進(jìn)程會自動重啟一個新的進(jìn)程
            Worker::stopAll();
        }

    }

    // 當(dāng)用戶斷開連接時觸發(fā)
    public static function onClose($client_id)
    {
        echo $client_id.'斷開了'.PHP_EOL;
    }
}

兩個頁面都需要查詢數(shù)據(jù)庫

2930 1 0
1個回答

walkor 打賞

初始化數(shù)據(jù)庫應(yīng)該放到gateway->onWorkerStart里。不能在主進(jìn)程直接初始化。
這樣初始化

$gateway->onWorkerStart = function(){
    global $db;
    $db = new \Workerman\MySQL\Connection('host', '3306', 'username', 'password', 'dbName');
};
  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??