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

mqtt接收設(shè)備的消息,wss server連接微信小程序,如何把一方的消息轉(zhuǎn)發(fā)到另一方?

LongJuanHong

問題描述

mqtt接收設(shè)備的消息,wss server連接微信小程序,如何把一方的消息轉(zhuǎn)發(fā)到另一方?

$mqtt_worker = new Worker();
$mqtt_worker->onWorkerStart = function(){
    $options = [
        'username' => 'mq_user_00001',
        'password' => 'qiR89ns',
        'resubscribe' => true,
        'client_id' => 'client_id_00001',
        'clean_session' => true,
    ];

    $mqtt = new Workerman\Mqtt\Client('mqtt://127.0.0.1:1883',$options);

    $mqtt->onConnect = function($mqtt) {
        echo("\n mqtt-onConnect \n");
        echo(date('Y-m-d H:i:s')."\n");
        $mqtt->subscribe('pzb/ws/v1/up/+');//$mqtt->subscribe('pzb/ws/v1/up/Dev00001');
        log_mqtt('[onConnect]');
    };

    $mqtt->onMessage = function($topic, $content, $mqtt){
            echo("\n mqtt-onMessage \n");
            echo(date('Y-m-d H:i:s')."\n");
            //如何把$content通過wss發(fā)送出去?
    };

    $mqtt->connect();
};

// 證書最好是申請的證書
$context = array(
    // 更多ssl選項請參考手冊 http://php.net/manual/zh/context.ssl.php
    'ssl' => array(
        // 請使用絕對路徑
        'local_cert'        => '/www/wwwroot/www.dog.com/dog_com.pem', // 也可以是crt文件
        'local_pk'          => '/www/wwwroot/www.dog.com/dog_com.key',
        'verify_peer'       => false,
        'allow_self_signed' => false, //如果是自簽名證書需要開啟此選項
    )
);
// 這里設(shè)置的是websocket協(xié)議(端口任意,但是需要保證沒被其它程序占用)
$wss_worker = new Worker('websocket://0.0.0.0:8282', $context);
// 設(shè)置transport開啟ssl,websocket+ssl即wss
$wss_worker->transport = 'ssl';
$wss_worker->onConnect = function(TcpConnection $con) {
        echo("\n\nwss_worker--onConnect:\n");
        echo(date('Y-m-d H:i:s')."\n");
        echo($con->getRemoteIp()."\n");
        log_wss('['.$con->getRemoteIp().'][onConnect]');
};

$wss_worker->onMessage = function(TcpConnection $con, $msg) {
        echo("\n\nwss_worker--onMessage:\n");
        echo(date('Y-m-d H:i:s')."\n");
        echo($con->getRemoteIp()."\n");
        log_wss('['.$con->getRemoteIp().'][onMessage]'.$msg);
        var_dump($msg);
        $con->send('ok');
        //如何把msg通過mqtt發(fā)送出去?
};
701 1 0
1個回答

jianqi

mqtt本質(zhì)就是訂閱/發(fā)布,

用emqx做服務(wù)端, emqx是支持wss方式接入的。

設(shè)備發(fā)布topic到emqx , 小程序訂閱相同的topic , 就會收到消息,不用額外操作 。

如果涉及更復(fù)雜的轉(zhuǎn)發(fā),emqx支持消息入mysql, 還有hook

??