Module mqtt

模块功能:MQTT客户端

Info:

  • Copyright: openLuat
  • Release: 2017.10.24
  • License: MIT
  • Author: openLuat

Functions

client (clientId[, keepAlive=300][, username=""][, password=""][, cleanSession=1][, will=nil][, version="3.1.1"]) 创建一个mqtt client实例
mqttc:connect (host, port[, transport="tcp"][, cert=nil]) 连接mqtt服务器
mqttc:subscribe (topic[, qos=0]) 订阅主题
mqttc:publish (topic, payload[, qos=0][, retain=0]) 发布一条消息
mqttc:receive (timeout) 接收消息
mqttc:disconnect () 断开与服务器的连接


Functions

client (clientId[, keepAlive=300][, username=""][, password=""][, cleanSession=1][, will=nil][, version="3.1.1"])
创建一个mqtt client实例

Parameters:

  • clientId string
    
            
  • keepAlive number [此参数可选,默认值为: 300]
     心跳间隔(单位为秒),默认300秒
  • username string [此参数可选,默认值为: ""]
     用户名,用户名为空配置为""或者nil
  • password string [此参数可选,默认值为: ""]
     密码,密码为空配置为""或者nil
  • cleanSession number [此参数可选,默认值为: 1]
     1/0
  • will table [此参数可选,默认值为: nil]
     遗嘱参数,格式为{qos=, retain=, topic=, payload=}
  • version string [此参数可选,默认值为: "3.1.1"]
     MQTT版本号

Returns:

  • table mqttc client实例

Usage:

  • mqttc = mqtt.client("clientid-123")
    mqttc = mqtt.client("clientid-123",200)
    mqttc = mqtt.client("clientid-123",nil,"user","password")
    mqttc = mqtt.client("clientid-123",nil,"user","password",nil,nil,"3.1")
mqttc:connect (host, port[, transport="tcp"][, cert=nil])
连接mqtt服务器

Parameters:

  • host string
     服务器地址
  • port
     string或者number类型,服务器端口
  • transport string [此参数可选,默认值为: "tcp"]
     "tcp"或者"tcp_ssl"
  • cert table [此参数可选,默认值为: nil]
    table或者nil类型,ssl证书,当transport为"tcp_ssl"时,此参数才有意义。cert格式如下:
     {
         caCert = "ca.crt", --CA证书文件(Base64编码 X.509格式),如果存在此参数,则表示客户端会对服务器的证书进行校验;不存在则不校验
         clientCert = "client.crt", --客户端证书文件(Base64编码 X.509格式),服务器对客户端的证书进行校验时会用到此参数
         clientKey = "client.key", --客户端私钥文件(Base64编码 X.509格式)
         clientPassword = "123456", --客户端证书文件密码[可选]
     }

Returns:

  • result true表示成功,false或者nil表示失败

Usage:

  • mqttc = mqtt.client("clientid-123", nil, nil, false); mqttc:connect("mqttserver.com", 1883, "tcp")
mqttc:subscribe (topic[, qos=0])
订阅主题

Parameters:

  • topic
    string或者table类型,一个主题时为string类型,多个主题时为table类型,主题内容为UTF8编码
  • qos [此参数可选,默认值为: 0]
    number或者nil,topic为一个主题时,qos为number类型(0/1/2,默认0);topic为多个主题时,qos为nil

Returns:

  • bool true表示成功,false或者nil表示失败

Usage:

  • mqttc:subscribe("/abc", 0) -- subscribe topic "/abc" with qos = 0
    mqttc:subscribe({["/topic1"] = 0, ["/topic2"] = 1, ["/topic3"] = 2}) -- subscribe multi topic
mqttc:publish (topic, payload[, qos=0][, retain=0])
发布一条消息

Parameters:

  • topic string
     UTF8编码的字符串
  • payload string
     用户自己控制payload的编码,mqtt.lua不会对payload做任何编码转换
  • qos number [此参数可选,默认值为: 0]
     0/1/2, default 0
  • retain number [此参数可选,默认值为: 0]
     0或者1

Returns:

  • bool 发布成功返回true,失败返回false

Usage:

  • mqttc = mqtt.client("clientid-123", nil, nil, false)
    mqttc:connect("mqttserver.com", 1883, "tcp")
    mqttc:publish("/topic", "publish from luat mqtt client", 0)
mqttc:receive (timeout)
接收消息

Parameters:

  • timeout number
    超时间隔,单位毫秒

Returns:

  1. result 接收结果,true表示成功,false表示失败
  2.  data
     如果成功返回的时候接收到的服务器发过来的包
     如果失败返回的是错误信息,如果是超时失败,返回"timeout"

Usage:

  • true, packet = mqttc:receive()
    false, error_message = mqttc:receive()
mqttc:disconnect ()
断开与服务器的连接

Returns:

  • nil

Usage:

  • mqttc = mqtt.client("clientid-123", nil, nil, false)
    mqttc:connect("mqttserver.com", 1883, "tcp")
    process data
    mqttc:disconnect()
generated by LDoc 1.4.6 Last updated 2018-07-13 17:19:02