消息推送其实就是在客户端维护一个长连接,而MQTT是一种轻量级低消耗的长连接方式,相比于普通的socket链接来说,它对服务器的消耗没有那么大。其原理大致如下:
服务器,服务器给客户端一个心跳应答,这样就形成客户端服务器的一次完整的握手,这个握手是让双方都知道他们之间的连接是没有断开,客户端是在线的。如果超过一个时间的阈值,客户端没有收到服务器的应答,或者服务器没有收到客户端的心跳,那么对客户端来说则断开与服务器的连接重新建立一。
在iOS端实现MQTT推送如下:
推送:
首先判断服务器是否启动成功:
推送内容:
订阅主题:
最后释放连接: