2

近期业务需要,调研和使用基于mqtt协议的mosquitto,开发一个消息推送系统。

环境:ubuntu 14.04,php7.1,mosquitto

安装mosquitto

sudo apt-get install mosquitto

安装PHP的mosquitto扩展

  • sudo pecl install Mosquitto-alpha
  • 然后把"extension=mosquitto.so "加到" php.ini"
  • 重启PHP

编写PHP代码,vim MqttMessage.php

class MqttMessage{
    public function Message(){
        $client = new Mosquitto\Client();
        $client->onConnect(function($code, $message) use ($client) {
            var_dump($code);
            var_dump($message);
            $client->subscribe('testing', 0);//订阅topic为testing的消息
        });
        $client->onMessage(function($message) use($client){
            echo $message->topic, "\n", $message->payload, "\n\n";
            $client->publish('testing2','testing2',0);//想topic为testing2,发布消息“testing2”
        });

        $client->connect('127.0.0.1', 1883);
        $client->loopForever();

    }
}
$mqtt =new MqttMessage();

 
$mqtt->Message();

运行PHP脚本
php MqttMessage.php
图片描述

发布消息

mosquitto_pub -t testing -m testing-messgae

php脚本接受到消息并且打印出来

clipboard.png

PHP脚本中,在收到消息后,会发布一个消息到topic为testing2中,后台会接收消息

clipboard.png


wmm369
125 声望12 粉丝

< 笃信力行 >