1.服务端软件对比

  https://github.com/mqtt/mqtt.github.io/wiki/servers

名称(点名进官网) 特性 简介 收费 支持的客户端语言

IBM MQ

  • 完整的MQTT v3.1
  • IBM MQ
  • JMS

企业级

IBM MQ(之前称作 WebSphere MQ)是一个安全的消息传递软件,

可以快速地在应用、系统和服务之间传递消息数据。

试用  c、java

IBM MessageSight

  • MQTT V3.1.1
  • QoS 0、1 、 2 - 竭尽全力、至少一次和只有一次
  • 支持带有 JavaScript API 的 MQTT 插件
  • 支持android/ios
  • 支持连接大量设备。
  • 针对持久性和非持久性消息交付高吞吐量。
  • JMS、WebSockets
  • 支持移动应用获得对JEE)企业应用的可扩展访问权。

企业级

专业的物连网服务端设备。

收费   java、c、JavaScript、ObjectiveC

Really Small Message Broker

  • MQTT v3.1

最小,最轻量的服务端。

早期版本只占80 KB硬盘空间和200k内存。

现在已经合并到Eclipse Mosquitto

免费  c
Moquette
  • QoS 0,QoS 1 和 QoS 2

Moquette 使用 Netty 作为协议编码和解码,

协议逻辑本质上是单线程,并且通过 LMAX disruptor

的循环缓冲器独立于前端连接器部分。

免费  java
Mosquitto
  • MQTT 3.1.1、MQTT 3.1
专为物连网设备和手机设计的软件 免费  c/c++、java、python
Eclipse Paho
  • 综合,全面。
开源mqtt服务端、客户端软件。 免费 

比较全面

Emitter
  • 消息可持久化。
  • 支持消息过滤,
  • 消息回放。
  • 默认2进制消息,可配置文本消息
  • 文档详细
.net写的快速,安全,实时服务端 免费

JAVA 、JAVASCRIPT、

TYPESCRIPT .NET / C# 、

GO、C/C++、PYTHON

emqttd(国内)
  • 完整支持MQTT V3.1/V3.1.1协议规范
  • 扩展支持WebSocket、Stomp、CoAP、

    MQTT-SN或私有TCP协议

  • 双节点负载均衡或多节点分布式集群
  • 中文文档详细
国内分布式开源物联网MQTT消息服务器 免费/收费

C/C++、Erlang、Java、

Javascrip、tObjective-C/Swift、

PHP、Python、Ruby

Xively   目前是beta版本,不推荐      
Yunba 国内
  • 实时统计、实时图表
  • 实时消息
  • 中文文档详细
  • 已经封装好android,ios等sdk
强调实时通讯  免费/收费  java,javascript,obj-c,php,c
RabbitMQ
  • 可分部式部属
  • 支持TLS and LDAP.
  • 管理和监视有ui界面

企业级

使用率较高的轻量级mqtt服务端,是一个在

AMQP基础上完成的,可复用的消息系统。

MPL java、Erlang、.net

Apache ActiveMQ

  • MQTT v3.1、AMQP v1.0、Stomp 、OpenWire
  • JMS provider
  • 支持持久化会话
  • 消息组、虚拟目标、通配符、
  • 支持spring
  • 服务端ui管理
  • 通过多种流行j2ee服务器测试

TomEEGeronimo, JBoss, GlassFish and WebLogic)

强壮、快速、多客户端语言的mqtt服务端软件。 免费

Java, C, C++, C#, Ruby,

Perl, Python, PHP

Apache ActiveMQ Artemis

  • AMQP、MQTT、STOMP、HornetQ
  • 支持大包消息
  • 主题继承
  • 消息组、消息转移
ActiveMQ的子项目,性能比较优异。 免费 同上
Apache Apollo   从2015年7月开始已经弃用       
HiveMQ
  • QoS 0 and QoS 1
  • 100% mqtt
  • Websockets
  • 企业级安全性

企业级

mqtt服务端软件

试用   
Mosca
  • MQTT 3.1 and 3.1.1
  • QoS 0 and QoS 1
node.js写的MQTT服务端软件 免费 JavaScript
Loop
  • MQTT 3.1
  • JMS
云端MQTT     
VerneMQ
  • 高并发
  • 实时
  • 适应多种手机和嵌入式设备

企业级

高性能、分布式服务端软件

免费 

Erlang, Elixir, Lua, and

any programming language

that can implement HTTP WebHooks.

HBMQTT
  • QoS 0, QoS 1 and QoS 2
  • 自动重连
  • SSL 、TCP
python写的mqtt服务端 免费  python
vertx-mqtt-broker
  • 3.1.1 and 3.1
  • QoS 0, 1 and 2
  • OAuth2
  • WebSocket
  • TLS

It's not a fully featured MQTT broker

but can be used for building something like

that or for protocol translation (MQTT <--> ?).

免费  vert.x 

2.客户端软件对比

  https://github.com/mqtt/mqtt.github.io/wiki/libraries

  下表中并不是完全支持mqtt所有特性,如:有的只支持qos0,有的不支持验证,而Espduino 已经停止更新等。使用前要看下它们最新的官方文档。

2.1 特殊硬件mqtt客户端库

硬件,点名字可接入相关连接

特性

开源协议

最后更新(2017查询)
Arduino
  • 发布QoS 0
  • 订阅QOS0、QOS1
  • 默认心跳15s
  • 默认MQTT 3.1.1

MIT License

 2017-06
Espduino
  • QoS1,2,3
  • 多连接
  • SSL

MIT License

2016-10 
mbed
  • 只有2个cpp和1个.h
 未声明 2010-10
mbed (simple port of the Arduino pubsubclient)
  • 未找到相关文档
 未声明 2013-08
mbed (native implementation)

c++版本的库的特性与之相同

 未声明 2017-05
mbed (Paho Embedded C++ port) 同上  未声明 2015-08
mbed (Paho Embedded C port) 同上  未声明 2015-08
Nanode
  • 只支持QoS0
  • 最大127K
 未声明 2011
Netduino
  • 只有QoS 0
  • 可读性好
  • 性能好,文件小

BSD 2-Clause

BSD 3-Clause

2012-01
M2MQTT  连接失效    

2.2 c/c++ mqtt客户端库对比

软件库 特性 开源协议 最后更新(2017查询)
Eclipse Paho C  EPL 2017-07
Eclipse Paho Embedded C    EPL 2017-07
libmosquitto
  • mqtt3.0 mqtt3.1.1
EPL/EDL 2017-07
libemqtt    GLPL 2014-10
wolfMQTT
  • SSL/TLS
  • MQTT v3.1.1
  • QoS 0-2

GNU General Public License v2.0

2017-06
Eclipse Paho C++

Eclipse Public License v1.0

Eclipse Distribution License v1.0

2017-07
libmosquittopp
  • MQTT v3.1/v3.1.1
EPL/EDL 2017-07
Eclipse Paho Embedded C++ EPL / EDL  2017-07

2.3 java mqtt客户端库对比

java库   特性  开源协议  最后更新日期(2017查询)
Eclipse Paho Java

  

 EPL 2017-08
Xenqtt
  • Qos 0 QoS 1
Apache License Version 2.0  2013-12
MeQanTT
  • 只QoS 0
Apache License 2.0 2012-11
Fusesource mqtt-client
  • SSL
  • 3.1 and 3.1.1,默认3.1
ASL 2.0 2016-03
moquette
  • QoS 0, QoS 1 and QoS 2.
Apache License 2.0 2017-08

MA9B

  • 3.1 and 3.1.1
  • OpenSSL
  • SHA-2
2014-08 
IA92  需要 WebSphere Business Integration Message Broker 收费  
vertx-mqtt-client
  • mqtt 3.1.1
  • Qos 0 ,1 ,2
Apache License 2.0 2017-08
Qatja
  • MQTT 3.1.1
  • android客户端
  • android服务组件
- 2017-07

2.4 其它语言

语言

连接

语言

连接

Actionscript

Javascript

Bash

LotusScript

Clojure

Lua

Dart

.NET

Delphi

Objective-C

Erlang

OCaml

Elixir

Perl

Go

PHP

Haskell

Python

REXX

Prolog

Ruby

Qt

Shell Script

Swift

Tcl

   

3.Android上mqtt协议客户端示例

  https://github.com/mqtt/mqtt.github.io/wiki/mqtt_on_the_android_platform

Android MQTT Push 使用Eclipse Paho 客户端的android消息推送示例
Mosquitto 一个基于比较完整的android示例
MQTT and Android  使用ibm MqttClient的示例
First Android Service 简单示例,可参数内存较少。
Push Notifications for Android using MQTT 国内打不开
HelloMQTT  国内打不开
ListMQTT  国内打不开
Using MQTT with Android 中文 ibm提供的示例,使用eclipse在android2.2上,服务端是WebSphere MQ Telemetry
An Android group chat app using MQTT 打不开
Android with ActiveMQ and MQTT ActiveMQ+fusesource/mqtt-client 示例
Android-Paho-MQTT-Service  一个 使用Paho  MQTT Client写的android服务组件
mqttitude  打不开
MQTT Widget goole play上的一个mqtt apk
Power profiling MQTT on Android 国内打不开
Power profiling HTTPS Long Polling vs MQTT with SSL on Android 国内打不开

采用MQTT协议实现android消息推送(2)MQTT服务端与客户端软件对比、android客户端示列表的更多相关文章

  1. android手机推送视频到服务端

    项目需求,android手机向服务器推送视频.苦战几个星期终于实现,现记录下来以免以后忘记. 没做过Java,也没做过Android开发,只能现学现卖.在网上找了下搭建开发a  ndroid环境资料, ...

  2. Android消息推送(二)--基于MQTT协议实现的推送功能

    国内的Android设备,不能稳定的使用Google GCM(Google Cloud Messageing)消息推送服务. 1. 国内的Android设备,基本上从操作系统底层开始就去掉了Googl ...

  3. Android消息推送完美方案[转]

    转自 Android消息推送完美方案 推送功能在手机应用开发中越来越重要,已经成为手机开发的必须.在Android应用开发中,由于众所周知的原因,Android消息推送我们不得不大费周折.本文就是用来 ...

  4. Android消息推送完美方案

    转自:http://bbs.hiapk.com/thread-4652657-1-1.html 推送功能在手机应用开发中越来越重要,已经成为手机开发的必须.在Android应用开发中,由于众所周知的原 ...

  5. Android消息推送完美解决方案全析

    推送功能在手机应用开发中越来越重要,已经成为手机开发的必须.在Android应用开发中,由于众所周知的原因,Android消息推送我们不得不大费周折.本文就是用来和大家共同探讨一种Android消息推 ...

  6. 使用GCM服务(Google Cloud Messaging)实现Android消息推送

    最近在网上查了关于很多Android消息推送的资料,其中主要有四种方法. 1) 使用GCM服务(Google Cloud Messaging) 2) 使用XMPP协议(Openfire + Spark ...

  7. Android消息推送的服务端

    2.Android消息推送 MQTT服务器采用mosquito  http://mosquitto.org/ PHP管理包采用phpmqttclient:https://github.com/toku ...

  8. android 消息推送

    android 消息推送 极光推送百度云推送(语音)友盟消息推送

  9. Android消息推送——JPush极光推送

    刚看了一篇关于Android消息推送评测总结的博客http://www.cnblogs.com/logan/p/4514635.html: 自己也对原学过的JPush极光进行一下小结,方便后续工作使用 ...

随机推荐

  1. 【原创】boost::recursive_mutex请小心使用

    recursive_mutex会减少死锁几率?恩看上去的确如此,但是事实上呢?我们从BOOST的官方逻辑去理解: recursive_mutex类可多次进入锁,这样在递归时可以避免一次死锁的几率,这是 ...

  2. 4.python 系统批量运维管理器之paramiko模块

    paramiko paramiko是ssh服务最经常使用的模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. paramiko实现ssh2不外乎两个角度:SSH客户端与服务端 SS ...

  3. App测试从入门到精通之功能测试

    App的功能测试指的是针对软件需求以及用户要求针对APP功能进行测试.简单点理解就是保证App功能的正确性,不要系统出现Bug.让用户用户的舒服,用的爽!好了,我们看下关于App的功能测试要点有哪些? ...

  4. Vivado生成edf文件

    https://china.xilinx.com/support/answers/54074.html  综合完成后会跳出个框框,选择open synthesis write_edif module. ...

  5. Math对象的使用

    1. Math.floor() === 向下取整 2.Math.random() === 取一个浮点随机数 3.Math.round() === 四舍五入后一个最接近的整数 4.Math.ceil() ...

  6. Eclipse操作技巧记录

    工欲善其事,必先利其器.记录下自己使用的eclipse操作技巧 1.eclipse设置自动提示 window->preference->java->editor->conten ...

  7. C# socket请求的名称有效 但是找不到请求的类型的数据

    程序以前在xp下运行一直良好,但将安装在win7下面却出现"请求的名称有效 但是找不到请求的类型的数据"错误,程序底层通信是基于socket,时间久了就会出现系统黑屏死机,但并不知 ...

  8. JAVA8 Lambda 表达式使用心得

    List<HashMap> 指定数据求和: List<HashMap> kk = new ArrayList<>();        Map mmm = new H ...

  9. js 去空格 和 获得字节数

    function removespace(str) { return str.replace(/(^\s*)|(\s*$)/g, ""); } function getLength ...

  10. jquery.validate弹窗验证

     $(document).ready(function () { //开始验证        $("#form1").validate({            submitHan ...