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

workerman是否能實(shí)現(xiàn)Mqtt的客戶端

xiewen_kevin

@walkor,

業(yè)務(wù)邏輯是這樣的: 設(shè)備A通過(guò)mqtt協(xié)議 向 Mosquitto服務(wù)器上的某個(gè)Topic發(fā)布消息,php的mqtt客戶端通過(guò)輪詢訂閱這個(gè)Topic來(lái)實(shí)時(shí)獲取設(shè)備A上報(bào)的數(shù)據(jù),然后存入數(shù)據(jù)庫(kù)。

php端的mqtt client 這邊我已經(jīng)有實(shí)現(xiàn)的類,此類提供訂閱和發(fā)布接口..

目前我這邊實(shí)現(xiàn)部分代碼:

$topics = array("qos"=>0, "function"=>"getmsg"); //getmsg  回調(diào)方法, 取得數(shù)據(jù)
    $mqtt->subscribe($topics,0); //訂閱主題
    while($mqtt->proc()){  //proc()  心跳等及其他實(shí)現(xiàn)
}

只是單純的通過(guò)while(){} 去主題上訂閱消息 性能及穩(wěn)定性是不是會(huì)很差?

mqtt已有成熟的Mosquitto作為服務(wù)器,請(qǐng)問(wèn)下,workerman可以用來(lái)實(shí)現(xiàn)mqtt的客戶端嗎?
如果可以的話 我把怎么把代碼移植到workerman框架里.麻煩walkor說(shuō)下具體的思路,感激不盡~

7829 1 1
1個(gè)回答

walkor 打賞

單個(gè)腳本while(){}循環(huán)穩(wěn)定性要差一些,需要有個(gè)主進(jìn)程監(jiān)控這個(gè)腳本是否異常退出。

workerman可以作為mqtt的客戶端,實(shí)際上就是開(kāi)發(fā)一個(gè)mqtt協(xié)議類。

自定義協(xié)議可以參考下手冊(cè) 定制通訊協(xié)議一章 http://doc.workerman.net/protocols/why-protocols.html

作為客戶端使用效果類似

use Workerman\Connection\AsyncTcpConnection;
$worker = new Worker();
$worker->onWorkerStart = function()
{
    $client_connection = new AsyncTcpConnection('mqtt://ip:port');
    $client_connection->onMessage = function($client_connection, $message)
    {
        var_dump($message);
    };
    $client_connection->onConnect/onError/onClose...
        $client_connection->connect();
    };
  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??