MQTT消息协议、服务器及其客户端

转载 2016年08月30日 10:38:44

    MQTT是一个轻量级的消息协议。从2014年12月IOIT大会上得到的消息,该协议已经被OASIS标准组织接收,成立了专门的工作组,以意味着该规范正式走向了标准化之路。

    目前MQTT的标准组织官网:http://www.mqtt.org,里面列出了很多支持的软件相关资源。

    一个轻量级的MQTT服务器是:http://www.mosquitto.org,可以运行ARM/MIPS的嵌入式linux系统上,如OpenWRT。

    很多客户端模块现在被Eclipse基金会接管,发展很快。所有的语言支持客户端在这里:http://git.eclipse.org/c/paho/

    下面介绍基于python的MQTT的客户端的安装:

git clone http://git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.python.git
cd org.eclipse.paho.mqtt.python
sudo python setup.py install


    注意,如果使用Sublime,最好到里面的控制台进行安装,缺省运行在独立的环境中,跟系统的控制台安装的程序不一样。

    然后,发送消息:
#!/usr/bin/python
# This shows a service of an MQTT subscriber.
# Copyright (c) 2010-2015, By openthings@163.com.


import sys
import datetime
import socket, sys
import paho.mqtt.publish as publish


def transmitMQTT(strMsg):
    #strMqttBroker = "localhost"
    strBroker = "112.124.67.178"
    strMqttChannel = "/inode/mychannel"
    print(strMsg)
    publish.single(strMqttChannel, strMsg, hostname = strMqttBroker)


if __name__ == '__main__':
    transmitMQTT("Hello,MQTT Proxy, I am client inside python.")
    print "Send msg ok."


创建一个MQTT服务器程序:

#!/usr/bin/python
# This shows a service of an MQTT subscriber.
# Copyright (c) 2010-2015, By openthings@163.com.


import sys
import datetime
import socket, sys


#======================================================        
#MQTT Initialize.--------------------------------------
try:
    import paho.mqtt.client as mqtt
except ImportError:
    print("MQTT client not find. Please install as follow:")
    print("git clone http://git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.python.git")
    print("cd org.eclipse.paho.mqtt.python")
    print("sudo python setup.py install")


#======================================================
def on_connect(mqttc, obj, rc):
    print("OnConnetc, rc: "+str(rc))


def on_publish(mqttc, obj, mid):
    print("OnPublish, mid: "+str(mid))


def on_subscribe(mqttc, obj, mid, granted_qos):
    print("Subscribed: "+str(mid)+" "+str(granted_qos))


def on_log(mqttc, obj, level, string):
    print("Log:"+string)


def on_message(mqttc, obj, msg):
    curtime = datetime.datetime.now()
    strcurtime = curtime.strftime("%Y-%m-%d %H:%M:%S")
    print(strcurtime + ": " + msg.topic+" "+str(msg.qos)+" "+str(msg.payload))
    on_exec(str(msg.payload))


def on_exec(strcmd):
    print "Exec:",strcmd
    strExec = strcmd
    
#=====================================================
if __name__ == '__main__': 
    mqttc = mqtt.Client("mynodeserver")
    mqttc.on_message = on_message
    mqttc.on_connect = on_connect
    mqttc.on_publish = on_publish
    mqttc.on_subscribe = on_subscribe
    mqttc.on_log = on_log


    #strBroker = "localhost"
    strBroker = "112.124.67.178"


    mqttc.connect(strBroker, 1883, 60)
    mqttc.subscribe("/inode/mychannel", 0)
    mqttc.loop_forever()


MQTT再学习 -- MQTT 客户端源码分析

MQTT 源码分析,搜索了一下发现网络上讲的很少,多是逍遥子的哪几篇。参看:逍遥子_mosquitto源码分析系列参看:MQTT libmosquitto源码分析参看:Mosquitto学习笔记一、目...

MQTT协议 Python客户端

1、安装模块 下载并解压,打开目录执行命令安装模块python setup.py install 2、Python代码 import paho.mqtt.client as mqtt# 当连接上服务器...
  • Leytton
  • Leytton
  • 2016年10月10日 23:11
  • 4720

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

windows MQTT客户端

通信猫调试助手软件下载地址:(单文件绿色版 2MB) http://tongxinmao.com/upload/COMNET.exe...
  • bona020
  • bona020
  • 2017年06月22日 17:03
  • 1263

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

MQTT paho客户端使用

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

MQTT协议 Websocket JS客户端

MQTT协议支持HTML5的Websocket客户端连接,只需要JS代码就能实现方便实时的通信,下面是实现步骤 1、引入JS文件 2、使用代码 下面为核心代码的截取 client = new Pah...
  • Leytton
  • Leytton
  • 2016年07月13日 12:50
  • 9676

Paho MQTT 嵌入式c客户端研究笔记 (二)

paho.mqtt.embedded-c-master\MQTTPacket\samples,这个目录里面封装了发布消息、订阅消息的示例。运行pub0sub1,这个示例里面会去订阅主题消息、发布主题消...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MQTT消息协议、服务器及其客户端
举报原因:
原因补充:

(最多只允许输入30个字)