Android 推送之 MQTT

Android 开发推送方案

MQTT 服务器

使用 emqttd broken
GitHub - emqtt/emqttd
官网

emqttd 主要配置参数

emqttd 使用以下命令调试输出

./bin/emqttd console

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


MQTT Android 客户端

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

wmqtt.jar
tokudu/AndroidPushNotificationsDemo

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

需要添加如下两个依赖 org.eclipse.paho:org.eclipse.paho.client.mqttv3org.eclipse.paho:org.eclipse.paho.android.service

1
2
3
4
5
6
7
8
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"
}
}

比较好的参考演示项目:
jeffprestes/AndroidMQTTDemo
样例使用示例

其它
MQTT协议实现Eclipse Paho学习总结一
编写和MQTT服务器通信的Android客户端程序(二)
MQTT协议之订阅及发布(使用paho-mqtt-client或mqttv3实现)


服务器 PHP 客户端 SAM

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

参考 tokudu 项目
tokudu/PhpMQTTClient
bluerhinos/phpMQTT


MQTT协议笔记之连接和心跳

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


参考

mqtt 协议之 PINGREQ, PINGRESP
MQTT协议笔记之连接和心跳

Android消息推送完美方案

文章目录
  1. 1. Android 开发推送方案
  2. 2. MQTT 服务器
    1. 2.0.1. MQTT Android 客户端
    2. 2.0.2. 服务器 PHP 客户端 SAM
    3. 2.0.3. MQTT协议笔记之连接和心跳
      1. 2.0.3.1. 参考