mosquitto_publish returns MOSQ_ERR_SUCCESS 尽管 MQTT 代理不是 运行
mosquitto_publish returns MOSQ_ERR_SUCCESS eventhough MQTT broker is not running
我使用 Mosquitto C 客户端库连接到 MQTT 代理。
我使用下面的代码进行连接。
ret = mosquitto_connect (mosq, MQTT_HOSTNAME, MQTT_PORT, 0);
连接到代理后,我停止了代理服务。
现在我尝试使用以下代码发布消息。
ret = mosquitto_publish (mosq, NULL,topic, strlen (text), text, 1, 1);
尽管经纪人 运行,mosquitto_publish API returns 成功。
第二次调用mosquitto_publishAPI时,returns14.
为什么 mosquitto_publish returns 尽管经纪人 运行 成功?如何解决这个问题?
提前致谢。
当与mosquitto_start()
一起使用时,mosquitto_publish()
函数是完全异步的。它所做的只是向队列中添加一条新消息并唤醒网络线程。如果上次客户端尝试与代理通信时一切正常,那么我们无法知道连接已断开。当您调用 mosquitto_publish()
时,它只能 return 成功,除非出现任何其他错误。当客户端尝试发送该发布时,它发现网络已关闭,因此任何后续发布都将 return 相应的错误。
我使用 Mosquitto C 客户端库连接到 MQTT 代理。
我使用下面的代码进行连接。
ret = mosquitto_connect (mosq, MQTT_HOSTNAME, MQTT_PORT, 0);
连接到代理后,我停止了代理服务。
现在我尝试使用以下代码发布消息。
ret = mosquitto_publish (mosq, NULL,topic, strlen (text), text, 1, 1);
尽管经纪人 运行,mosquitto_publish API returns 成功。 第二次调用mosquitto_publishAPI时,returns14.
为什么 mosquitto_publish returns 尽管经纪人 运行 成功?如何解决这个问题?
提前致谢。
当与mosquitto_start()
一起使用时,mosquitto_publish()
函数是完全异步的。它所做的只是向队列中添加一条新消息并唤醒网络线程。如果上次客户端尝试与代理通信时一切正常,那么我们无法知道连接已断开。当您调用 mosquitto_publish()
时,它只能 return 成功,除非出现任何其他错误。当客户端尝试发送该发布时,它发现网络已关闭,因此任何后续发布都将 return 相应的错误。