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

用workerman的mqtt做為客戶端,如何onClose或者onError的時候連另一臺服務(wù)器

youwuku

用workerman的mqtt做為客戶端,mqtt服務(wù)端是集群,連接任何一臺都可以接收數(shù)據(jù),我的問題是,如何onClose或者onError的時候沖連另一臺服務(wù)器。
即做到只要一臺出問題,自動重連服務(wù)器隊列里的任何一臺。

2578 3 0
3個回答

six

onClose 或者 onError 的時候,關(guān)閉當(dāng)前mqtt連接,然后重新建立一個mqtt實例,去連新的ip。

  • youwuku 2020-07-06

    謝謝!

  • youwuku 2020-07-07

    評論里貼代碼不方便,后面貼了,我們嘗試了一下,目前來看還行,需要到生產(chǎn)環(huán)境里測試了。

youwuku

新的ip需要 new 新的Client,要不然地址傳不進(jìn)來,而這時候就報 類重復(fù)加載錯誤。因為常駐內(nèi)存的問題。

  • six 2020-07-06

    搞不懂你為啥要重復(fù)加載

  • youwuku 2020-07-06
    $mqtt = new Client($adress, $connArr);
    $mqtt->count=5;
    
    $mqtt->onClose = function($mqtt)
    {
        $mqtt->close();
        $adress='xxx';
        $connArr=array(
            'username' => 'xxxx',
            'password' => 'xxxx',
            'debug' => true
        ); 
        $mqttBack = new Client($adress, $connArr);
    };
  • youwuku 2020-07-06

    是這樣寫嗎?

youwuku

下面這段代碼能實現(xiàn)上面的功能,測試過了,就不知道還有什么坑。

$worker->onWorkerStart = function(){
global $mqtt,$mqttBack;

$mqtt->count=5;

$mqtt->onConnect = function($mqtt) {
    $mqtt->subscribe('logs/Test');
};

$mqtt->onMessage = function($topic, $content){
    echo "topic:$topic content:$content\n";
};

$mqtt->onClose = function($mqtt)
{
    global $mqttBack;

    $mqttBack->connect();
};
$mqtt->connect();

//備用地址部分。

$mqttBack->count=5;
$mqttBack->onConnect = function($mqttBack) {
    $mqttBack->subscribe('logs/Test');
};

$mqttBack->onMessage = function($topic, $content){
    echo "topic:$topic content:$content\n";
};

$mqttBack->onClose = function($mqttBack)
{
    global $mqtt;

    $mqtt->connect();
};

};

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