Library version: 2.8
Constructor
Function
- booleanconnect (clientID, [username, password], [willTopic, willQoS, willRetain, willMessage], [cleanSession])
- voiddisconnect ()
- booleanpublish (topic, payload, [length], [retained])
- booleanpublish_P (topic, payload, [length], [retained])
- booleanbeginPublish (topic, length, retained)
- intwrite (byte)
- intwrite (payload, length)
- booleanendPublish ()
- booleansubscribe (topic, [qos])
- booleanunsubscribe (topic)
- booleanloop ()
- booleanconnected ()
- intstate ()
- PubSubClient*setCallback (callback)
- PubSubClient*setClient (client)
- PubSubClient*setServer (server, port)
- PubSubClient*setStream (stream)
- uint16_tgetBufferSize ()
- booleansetBufferSize (size)
- PubSubClient*setKeepAlive (keepAlive)
- PubSubClient*setSocketTimeout (timeout)
Other
PubSubClient ()
API 文档
库版本:2.8
构造函数
功能
- boolean connect (clientID, [用户名, 密码], [willTopic, willQoS, willRetain, willMessage], [cleanSession])
- 无效断开 ()
- 布尔发布 (主题,有效载荷,[长度],[保留])
- boolean publish_P (主题,有效载荷,[长度],[保留])
- boolean beginPublish (主题、长度、保留)
- int写 (字节)
- int write (有效负载,长度)
- 布尔值endPublish ()
- 布尔订阅 (主题,[qos])
- 布尔取消订阅 (主题)
- 布尔循环 ()
- 布尔连接 ()
- 整数状态 ()
- PubSubClient* setCallback (回调)
- PubSubClient* setClient (客户端)
- PubSubClient* setServer (服务器,端口)
- PubSubClient* setStream (流)
- uint16_t getBufferSize ()
- 布尔值setBufferSize (大小)
- PubSubClient* setKeepAlive (keepAlive)
- PubSubClient* setSocketTimeout (超时)
其他
发布订阅客户端 ()
创建一个未初始化的客户端实例。
在使用之前,必须使用属性设置器对其进行配置:
EthernetClient ethClient;
PubSubClient client;
void setup() {
client.setClient(ethClient);
client.setServer("broker.example.com",1883);
// client is now configured for use
}
PubSubClient (客户端)
创建一个部分初始化的客户端实例。
在使用之前,必须配置服务器详细信息:
EthernetClient ethClient;
PubSubClient client(ethClient);
void setup() {
client.setServer("broker.example.com",1883);
// client is now ready for use
}
参数
- client- 要使用的网络客户端,例如WiFiClient
PubSubClient (服务器、端口、[回调]、客户端、[流])
创建一个完全配置的客户端实例。
参数
- 服务器IPAddress、uint8_t[] 或 const char[] - 服务器的地址
- port int- 要连接的端口
- 回调函数* (可选) - 指向消息回调函数的指针,当消息到达时调用此客户端创建的订阅
- client- 要使用的网络客户端,例如WiFiClient
- stream Stream (可选)- 将接收到的消息写入的流
boolean connect (clientID, [用户名, 密码], [willTopic, willQoS, willRetain, willMessage], [cleanSession])
连接客户端。
参数
- clientID const char[]- 连接到服务器时使用的客户端 ID
- 凭据- (可选)
- username const char[]- 要使用的用户名。如果NULL,不使用用户名或密码
- password const char[]- 要使用的密码。如果NULL,不使用密码
- 将- (可选)
- willTopic const char[]- 遗嘱消息要使用的主题
- willQoS int: 0,1 或 2- 遗嘱消息使用的服务质量
- willRetain布尔值 - 是否应使用保留标志发布遗嘱
- willMessage const char[]- 遗嘱消息的有效载荷
- cleanSession boolean (可选)- 是否连接干净会话
退货
- false- 连接失败
- true- 连接成功
无效 断开 ()
断开客户端。
布尔 发布 (主题,有效载荷,[长度],[保留])
向指定主题发布消息。
参数
- topic const char[]- 要发布到的主题
- payload const char[], byte[]- 要发布的消息
- length unsigned int (可选)- 有效载荷的长度。如果有效负载是字节[],则为必需
- 保留布尔值 (可选) - 是否应保留消息
- false - 未保留
- 真 - 保留
退货
- false- 发布失败,连接丢失或消息太大
- true- 发布成功
boolean publish_P (主题,有效载荷,[长度],[保留])
将存储在 PROGMEM 中的消息发布到指定的主题。
参数
- topic const char[]- 要发布到的主题
- payload const char[], byte[]- 要发布的消息
- length unsigned int (可选)- 有效载荷的长度。如果有效负载是字节[],则为必需
- 保留布尔值 (可选) - 是否应保留消息
- false - 未保留
- 真 - 保留
退货
- false- 发布失败,连接丢失或消息太大
- true- 发布成功
boolean beginPublish (主题、长度、保留)
开始发送发布消息。消息的有效负载由一个或多个 调用提供,write然后调用endPublish。
参数
- topic const char[]- 要发布到的主题
- length unsigned int- 要发送的有效负载的长度
- 保留布尔值 - 是否应保留消息
- false - 未保留
- 真 - 保留
退货
- false- 发布失败,连接丢失或消息太大
- true- 发布成功
int 写 (字节)
写入一个字节作为以调用开始的发布的组件beginPublish。
参数
- byte uint8_t- 要写入发布负载的字节
退货
- int- 写入的字节数
int write (有效负载,长度)
写入一个字节数组,作为以调用开始的发布的组件beginPublish。
参数
- payload byte[]- 要写入的字节
- length unsigned int- 要发送的有效负载的长度
退货
- int- 写入的字节数
布尔值 endPublish ()
完成发送以调用 开始的消息beginPublish。
退货
- false- 发布失败,连接丢失或消息太大
- true- 发布成功
布尔 订阅 (主题,[qos])
订阅发布到指定主题的消息。
参数
- topic const char[]- 要订阅的主题
- qos int: 0 or 1 only (optional)- 要订阅的 qos
退货
- false- 发送订阅失败,连接丢失或消息太大
- true- 发送订阅成功
布尔 取消订阅 (主题)
取消订阅指定的主题。
参数
- topic const char[]- 要取消订阅的主题
退货
- false- 发送取消订阅失败,连接丢失或消息太大
- true- 发送取消订阅成功
布尔 循环 ()
这应该被定期调用以允许客户端处理传入的消息并保持其与服务器的连接。
退货
- false- 客户端不再连接
- true- 客户端仍处于连接状态
布尔 连接 ()
检查客户端是否连接到服务器。
退货
- false- 客户端未连接
- true- 客户端已连接
整数 状态 ()
返回客户端的当前状态。如果连接尝试失败,这可用于获取有关失败的更多信息。
所有值都有在 中定义的相应常量PubSubClient.h。
退货
- -4 :MQTT_CONNECTION_TIMEOUT- 服务器在保活时间内没有响应
- -3 :MQTT_CONNECTION_LOST- 网络连接中断
- -2 :MQTT_CONNECT_FAILED- 网络连接失败
- -1 :MQTT_DISCONNECTED- 客户端完全断开连接
- 0 :MQTT_CONNECTED- 客户端已连接
- 1 :MQTT_CONNECT_BAD_PROTOCOL- 服务器不支持请求的 MQTT 版本
- 2 :MQTT_CONNECT_BAD_CLIENT_ID- 服务器拒绝客户端标识符
- 3 :MQTT_CONNECT_UNAVAILABLE- 服务器无法接受连接
- 4 :MQTT_CONNECT_BAD_CREDENTIALS- 用户名/密码被拒绝
- 5 :MQTT_CONNECT_UNAUTHORIZED- 客户端未被授权连接
PubSubClient* setCallback (回调)
设置消息回调函数。
参数
- 回调函数* - 指向消息回调函数的指针,当消息到达此客户端创建的订阅时调用。
退货
- PubSubClient*- 客户端实例,允许链接函数
PubSubClient* setClient (客户端)
设置要使用的网络客户端实例。
参数
- client- 要使用的网络客户端,例如WiFiClient
退货
- PubSubClient*- 客户端实例,允许链接函数
PubSubClient* setServer (服务器,端口)
设置服务器详细信息。
参数
- 服务器IPAddress、uint8_t[] 或 const char[] - 服务器的地址
- port int- 要连接的端口
退货
- PubSubClient*- 客户端实例,允许链接函数
PubSubClient* setStream (流)
设置将接收到的消息写入的流。
参数
- stream Stream- 将接收到的消息写入的流
退货
- PubSubClient*- 客户端实例,允许链接函数
uint16_t getBufferSize ()
获取内部缓冲区的当前大小。
默认情况下,它设置为256字节 - 由 中的MQTT_MAX_MESSAGE_SIZE 常量定义PubSubClient.h。
退货
- uint16_t- 内部缓冲区的大小
布尔值 setBufferSize (大小)
设置内部发送/接收缓冲区的大小(以字节为单位)。这必须足够大以包含完整的 MQTT 数据包。在发送或接收消息时,数据包将包含完整的主题字符串、有效负载数据和少量的头字节。
默认情况下,它设置为256字节 - 由 中的MQTT_MAX_MESSAGE_SIZE 常量定义PubSubClient.h。
注意:setBufferSize返回一个布尔标志以指示它是否能够重新分配内存以更改缓冲区大小。这意味着,与setXYZ返回客户端引用的其他函数不同 ,此函数不能与这些函数链接。
参数
- size uint16_t- 内部缓冲区的大小(以字节为单位)
退货
- false- 无法调整缓冲区大小
- true- 缓冲区已调整大小
PubSubClient* setKeepAlive (keepAlive)
设置客户端使用的保持活动间隔。仅当客户端未连接时才应更改此值。
默认情况下,它设置为15秒 - 由 中的MQTT_KEEPALIVE 常量定义PubSubClient.h。
参数
- keepAlive uint16_t- 保持活动间隔,以秒为单位
退货
- PubSubClient*- 客户端实例,允许链接函数
PubSubClient* setSocketTimeout (超时)
设置客户端使用的套接字超时。这决定了客户端在预期数据到达时将等待传入数据的时间 - 例如,当它正在读取 MQTT 数据包时。
默认情况下,它设置为15秒 - 由 中的MQTT_SOCKET_TIMEOUT 常量定义PubSubClient.h。
参数
- timeout uint16_t- 套接字超时,以秒为单位
退货
- PubSubClient*- 客户端实例,允许链接函数
配置选项
以下配置选项可用于配置库。它们包含在PubSubClient.h.
MQTT_MAX_PACKET_SIZE
设置客户端将处理的最大数据包大小(以字节为单位)。任何接收到的超过此大小的数据包都将被忽略。
这个值可以通过调用来覆盖setBufferSize(size)。
默认值:128 字节
MQTT_KEEPALIVE
设置客户端将使用的保持连接间隔,以秒为单位。这用于在没有其他数据包被发送或接收时保持连接。
这个值可以通过调用来覆盖setKeepAlive(keepAlive)。
默认值:15 秒
MQTT_VERSION
设置要使用的 MQTT 协议的版本。
默认值:MQTT 3.1.1
MQTT_MAX_TRANSFER_SIZE
设置在每次写入调用中传递给网络客户端的最大字节数。某些硬件对一次性传递多少数据有限制,例如 Arduino Wifi Shield。
默认值:未定义(在每次写入调用中传递的完整数据包)
MQTT_SOCKET_TIMEOUT
设置从网络读取时的超时时间。这也适用于调用connect.
这个值可以通过调用来覆盖setSocketTimeout(timeout)。
默认值:15 秒
订阅回调
如果使用客户端订阅主题,则必须在构造函数中提供回调函数。当新消息到达客户端时调用此函数。
回调函数具有以下签名:
void callback(const char[] topic, byte* payload, unsigned int length)
参数
- topic const char[]- 消息到达的主题
- 有效载荷字节[] - 消息有效载荷
- length unsigned int- 消息有效负载的长度
在内部,客户端对入站和出站消息使用相同的缓冲区。在回调函数返回后,或者如果在回调函数中调用了publish or 或 subscribe,传递给函数的topic 和payload值将被覆盖。如果在回调返回后需要这些值,应用程序应创建其自己的值副本。