一、概念
MQTT 协议客户端库:
例如,mosquitto_sub/pub 命令行发布订阅消息:
mosquitto_sub -t topic -q 2 mosquitto_pub -t topic -q 1 -m "Hello, MQTT!"
MQTT V3.1.1 版本协议规范:
二、发布订阅模式
三、客户端监听设置
HTTP 发布接口
EMQ 消息服务器提供了一个 HTTP 发布接口,应用服务器或 Web 服务器可通过该接口发布 MQTT 消息:
HTTP POST http://host:8080/mqtt/publish
Web 服务器例如 PHP/Java/Python/NodeJS 或 Ruby on Rails,可通过 HTTP POST 请求发布 MQTT 消息:
curl -v --basic -u user:passwd -d "qos=1&retain=0&topic=/a/b/c&message=hello from http..." -k http://localhost:8080/mqtt/publish
HTTP 接口参数:
参数 | 说明 |
---|---|
client | MQTT 客户端 ID |
qos | QoS: 0 | 1 | 2 |
retain | Retain: 0 | 1 |
topic | 主题(Topic) |
message | 消息 |
注解
HTTP 发布接口采用 Basic 认证
注解
该接口在 v2.3-beta.2 版本变更为: ‘api/v2/mqtt/publish’, 详见文档:
MQTT WebSocket 连接
EMQ 消息服务器支持 MQTT WebSocket 连接,Web 浏览器可直接通过 MQTT 协议连接服务器:
WebSocket URI: | ws(s)://host:8083/mqtt |
Sec-WebSocket-Protocol: | ‘mqttv3.1’ or ‘mqttv3.1.1’ |
Dashboard 插件提供了一个 MQTT WebSocket 连接的测试页面:
http://127.0.0.1:18083/websocket.html
EMQ 通过内嵌的 HTTP 服务器,实现 MQTT/WebSocket,etc/emq.conf 设置:
## MQTT/WebSocket Listenerlistener.ws.external = 8083listener.ws.external.acceptors = 4 listener.ws.external.max_clients = 64