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

web-msg-sender中怎么使用Workerman/MySQL?$db連不上是怎么回事呢?

amhoho

我在web-sender中此處引入了之后,在其它地方例如on('connection'均無法獲得該$db, 請教一下sender應(yīng)該如何連接數(shù)據(jù)庫
,使之可以global于其它地方.多謝了.
補(bǔ)充:/web-msg-sender/start_io.php原文中加入$inner_http_worker->onWorkerStart片段

...
$sender_io->on('workerStart', function(){
$inner_http_worker = new Worker('http://0.0.0.0:2121');

//新增開始
$inner_http_worker->onWorkerStart = function($inner_http_worker){
//數(shù)據(jù)庫初始化,在其余地方都是服務(wù)使用$db;似乎onWorkerStart無法觸發(fā)
global $db;
$db = new Workerman\MySQL\Connection('127.0.0.1', '3306', 'test', 'test', 'test');
};
//新增結(jié)束
//其余地方都引用不了$db

$inner_http_worker->onMessage = function($http_connection, $data){
    global $uidConnectionMap,$db;//比如這里$db就是null
    $_POST = $_POST ? $_POST : $_GET;
    switch(@$_POST){
        case 'publish':
            global $sender_io;
            $to = @$_POST;
            $_POST = htmlspecialchars(@$_POST);

...

4811 4 0
4個回答

xiuwang

用的時候沒加global吧

  • amhoho 2017-11-06

    代碼本身沒有問題

  • xiuwang 2017-11-06

    報錯和代碼都貼出來看看?

  • amhoho 2017-11-06

    就是web-msg-sender/start_io.php中加提問中的代碼,然后在別的地方就引用不了$db;代碼沒有改動.我補(bǔ)充下問題

walkor 打賞
$sender_io->on('workerStart', function(){
    global $db;
    $db = new Workerman\MySQL\Connection('127.0.0.1', '3306', 'test', 'test', 'test');
});

應(yīng)該是這樣。
onWorkerstart是子進(jìn)程啟動后的回調(diào),然后$inner_http_worker是在onWorkerStart時創(chuàng)建的,這個$inner_http_worker不會再創(chuàng)建新的進(jìn)程,所以$inner_http_worker->onWorkerStart不會執(zhí)行到,所以db都是空的。

  • amhoho 2017-11-06

    原來這樣,一會兒試一下,多謝解惑.我之前琢磨之后也是這樣解決了,不過由于還不熟悉 workerman 所以想問清楚 謝了.

  • amhoho 2017-11-06

    再請教一下,前端socket.emit('login', 'a'),并且這個用戶加入多個分組:$socket->join('a'),$socket->join('b'),$socket->join('c');,這樣子的話$sender_io->to('a')固然是可以的,但to('b')的時候就會出現(xiàn)能發(fā)送給用戶,但提示offline,這種加入多組后,給分組發(fā)送提示offline的情形應(yīng)該怎么辦呢.

xiuwang

學(xué)習(xí)了,還是要老大出馬啊

  • 暫無評論
henry

請問樓主:
啟動workerman后,前端調(diào)用的時候報錯:Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'
這個問題有遇到過嗎

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