最近公司开发项目,用到了推送技术,这里不分析各种推送技术的优劣了,网上内容一大堆,通过查看别人的对比资料以及实践,最后选择了mqtt这个推送协议。
mqtt既然是一个协议,自然就有它的实现了,相关的客户端和服务器端实现可以在这个网址下找到:https://github.com/mqtt/mqtt.github.io/wiki/software?id=software,这里服务器端实现我选择了mosquitto,客户端嘛就不止选择一个了,由于项目涉及到Android、ios以及mtk平台以及浏览器,因此每个平台客户端的选择也不一样。
- Android端和服务器端由于采用了java进行开发,所以选择了https://github.com/fusesource/mqtt-client。
- ios平台不怎么熟悉,同事弄的,选择的:https://github.com/wssand44/MQTT/tree/master/Client/MQTTMessenger/MQTTMessenger/MqttSDK。
- mtk平台为一个嵌入式开发平台,使用c语音开发,因此选择了https://github.com/menudoproblema/libemqtt,由于c语音实现使用了linux的socket库,因此该实现如果要直接使用,可以在linux编译运行,而我们还需要针对mtk平台的socket特性进行移植,最后才能使用。
- 浏览器使用websocket,因此最后选择了http://www.eclipse.org/paho/clients/js/这个js库。
推送,最核心的就是建立长连接,因此也有很多建立连接的方式,可以基于tcp,tls,