MQTT协议之websocket方式发布接收消息

来源:互联网 发布:java破解网站验证码 编辑:程序博客网 时间:2024/06/06 00:07
ActiveMQ支持MQTT协议并且在JMS和MQTT客户端之间自动进行消息转换。
为了是ActiveMQ支持MQTT协议,可以在activemq.xml配置文件中做以下配置:
<transportConnector name="mqtt+nio" uri="mqtt+nio+ssl://localhost:1883"/>

当一个客户端连接MQTT服务器的时候,会发送心跳信号来检测连接是否有效,通常心跳信号默认的时间间隔为10秒钟。ActiveMQ默认会将连接的有效期设置为 1.5*10=15秒但是,如果客户端设置keep-alive为0的时候,ActiveMQ会一直认为客户端连接有效,而不会自动关闭。这种情况会导致连接的泄露,因此在服务端也设置一个默认的有效连接时间是必要的。
下面的参数则是在服务端设置一个连接有效时间:
<transportConnector name="mqtt" uri="mqtt://localhost:1883?transport.defaultKeepAlive=60000"/>
ActiveMQ9.0版本以后,提供了对WebSocket协议的支持

<transportConnector name="ws" uri="ws://0.0.0.0:61614?transport.initialReconnectDelay=10&amp;maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>


客户端websocket实现:https://github.com/i5ting/paho.mqtt.javascript

客户端代码参考:Mqtt websocket javascript 客户端实例


参考:

1.基于 WebSocket 的 MQTT 移动推送方案

2.使用ActiveMQ+MQTT实现Android点对点消息通知

0 0