浅谈MQTT的安装及使用

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器(比如通过Twitter让房屋联网)的通信协议。

若初次接受mqtt,可以先简单的理解下边几个概念:
【MQTT协议特点】——相比于RESTful架构的物联网系统,MQTT协议借助消息推送功能,可以更好地实现远程控制。
【MQTT协议角色】——在RESTful架构的物联网系统,包含两个角色客户端和服务器端,而在MQTT协议中包括发布者,代理器(服务器)和订阅者。
【MQTT协议消息】——MQTT中的消息可理解为发布者和订阅者交换的内容(负载),这些消息包含具体的内容,可以被订阅者使用。
【MQTT协议主题】——MQTT中的主题可理解为相同类型或相似类型的消息集合。

1.安装

文档
下载地址

2.新服务器安装

emq提供不同版本安装
unzip emqttd-macosx-v2.0.zip && cd emqttd

# 启动emqttd
./bin/emqttd start

# 检查运行状态
./bin/emqttd_ctl status

# 停止emqttd
./bin/emqttd stop

3.简单测试

chrome 服务器提供简单的mqtt服务测试
MQTTLENS

ok ,然后点击右下方 SAVE CHANGES 然后就可以进行简单的测试了

此时则为测试成功

一般是硬件登录后服务器端返回订阅地址,然后由硬件订阅,然后服务器发布消息,则硬件即可收到信息。

假设后台为php语言
点此下载php mqtt

假设推送订单数据
/**
 * mqqt 发布消息
 * @param int $order_id 订单id
 */
function mqqt_publish($order_id){
    $base_path = $base_path == null ? BASE_ROOT_PATH . '/Application/Common/Tool' : $base_path;
    $file_name = $base_path . '/mqtt/phpMQTT.php';  //引入文件
    require_once ($file_name);
    $datas = array(); //用于组件数据
    $mqtt_address = '通讯地址'; //定义通讯地址
    $server = "mqtt服务器ip地址";      // change if necessary
    $port = 1883;                     // change if necessary
    $username = "";                   // set your username
    $password = "";                   // set your password
    $client_id = uniqid(); // make sure this is unique for connecting to sever - you could use uniqid()

    $mqtt = new \Common\Tool\mqtt\phpMQTT($server, $port, $client_id);

    if ($mqtt->connect(true, NULL, $username, $password)) {
        $mqtt->publish($mqtt_address, json_encode($datas), 0);
        $mqtt->close();
    } else {
        echo "Time out!\n";
    }
}

4.总结

本文并没有分析MQTT协议的种种细节,但是希望通过一个简单的例子把MQTT协议“使用起来”,通过使用过程来理解MQTT协议。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值