采用MQTT协议实现android消息推送(2)MQTT服务端与客户端软件对比、android客户端示列表...

 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服务端、客户端软件。 免费 

 比较全面

采用MQTT协议实现android消息推送(2)MQTT服务端与客户端软件对比、android客户端示列表..._第1张图片

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服务器测试

( TomEE, Geronimo, 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)

 采用MQTT协议实现android消息推送(2)MQTT服务端与客户端软件对比、android客户端示列表..._第2张图片

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 采用MQTT协议实现android消息推送(2)MQTT服务端与客户端软件对比、android客户端示列表..._第3张图片  EPL 2017-07
Eclipse Paho Embedded C  采用MQTT协议实现android消息推送(2)MQTT服务端与客户端软件对比、android客户端示列表..._第4张图片  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++

采用MQTT协议实现android消息推送(2)MQTT服务端与客户端软件对比、android客户端示列表..._第5张图片

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++ 采用MQTT协议实现android消息推送(2)MQTT服务端与客户端软件对比、android客户端示列表..._第6张图片 EPL / EDL  2017-07

2.3 java mqtt客户端库对比

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

采用MQTT协议实现android消息推送(2)MQTT服务端与客户端软件对比、android客户端示列表..._第7张图片  

 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
  • as3MQTT
Javascript
  • Eclipse Paho HTML5 JavaScript over WebSocket.
  • mqtt.js
  • node_mqtt_client (more information)
  • IBM-provided PhoneGap / Apache Cordova MQTT plug-in for Android
  • Ascoltatori
Bash
  • Shell Script
LotusScript
  • MQTT From LotusScript
Clojure
  • Machine Head
  • Clojure MQTT Codec for Netty
Lua
  • Eclipse Paho Lua
Dart
  • mqtt.dart
.NET
  • Paho.MqttDotnet

  • MqttDotNet

  • nMQTT

  • M2MQTT

  • KittyHawkMQ

  • StriderMqtt

Delphi
  • TMQTTClient
Objective-C
  • mqttIO-objC

  • libmosquitto 

  • MQTTKit

  • "MA9B"

Erlang
  • erlmqtt
  • emqttc
  • mqtt4erl
  • my-mqtt4erl
OCaml
  • ocaml-mqtt

  • mqtt_client

Elixir
  • hulaaki
Perl
  • net-mqtt-perl

  • anyevent-mqtt-perl

  • WebSphere-MQTT-Client

  • Net::MQTT::Simple cpan github
Go
  • Eclipse Paho Go
PHP
  • phpMQTT

  • Mosquitto-PHP

  • sskaje's MQTT library

Haskell
  • mqtt-hs
Python
  • Eclipse Paho Python

  • nyamuk

  • MQTT for twisted python

  • HBMQTT

 
REXX
  • REXX MQTT
 
 
Prolog
  • MQTT Pack 
Ruby
  • ruby-mqtt

  • em-mqtt

  • mosquitto

Qt
  • qmqtt 
Shell Script
  • bish-bosh
Swift
  • CocoaMQTT
Tcl
  • tcl-mqtt
   

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 国内打不开

转载于:https://www.cnblogs.com/sjjg/p/7443928.html

你可能感兴趣的:(移动开发,netty,开发工具)