Android 推送之 MQTT

Summary: Author: 张亚飞 | 阅读时间: 2 minute read | Published: 2016-09-15
Filed under Categories: MarkDownTags: Tag,

Android 开发推送方案

MQTT 服务器

/opt/data/

wget http://emqtt.com/static/brokers/emqttd-ubuntu16.04-v2.0.2.zip
unzip emqttd-ubuntu16.04-v2.0.2.zip
cd emqttd
./bin/emqttd console

如果没有打印输出日志信息,可以参考取消 rel/files/emqttd.config.production./etc/emqttd.config 中对 %%{lager_console_backend, info} 的注释


MQTT Android 客户端

之前使用 IBM 提供的 wmqtt.jar 和 tokudu 项目示例

由于 wmqttd 几乎没有更新,于是采用新的Android客户端 Paho 方案

需要添加如下两个依赖 [org.eclipse.paho:org.eclipse.paho.client.mqttv3]() 和 org.eclipse.paho:org.eclipse.paho.android.service

dependencies {
    // http://www.eclipse.org/paho/clients/android/
    compile('org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2')
    compile('org.eclipse.paho:org.eclipse.paho.android.service:1.0.2') {
        exclude module: "org.eclipse.paho.client.mqttv3", group: "org.eclipse.paho"
        exclude module: "support-v4", group: "com.google.android"
    }
}

服务器 PHP 客户端 SAM

SAM 针对MQTT写的PHP库 (下载链接为Tokudu PHPMQTT通信项目),其中send_mqtt.php是一个通过POST接收消息并且通过SAM将消息发送给RSMB的PHP脚本. * SAM

参考 tokudu 项目


MQTT 协议笔记之连接和心跳

几种 MQTT 协议 包 格式有: 连接(CONNECT). 心跳(PINGREQ/PINGRESP). 确认(CONNACK). 断开连接(DISCONNECT). 订阅(SUBSCRIBE). 取消订阅(SUBACK)


Reference

Comments

Cor-Ethan, the beverage → www.iirii.com