我有一个包含大约 150 个 Mosquitto 日志条目的电子表格。它与我发布的 30 条消息配对,及时匹配。也就是说,Mosquitto 条目的数量大约是已发布条目的 5 倍。许多似乎表明我发布的东西超时了。其他人说“套接字错误”。但是所有订阅者都收到了消息。
我的问题是,在每小时发布 2 或 3 个 2 或 3 天后,突然没有订阅者得到我发布的任何内容。但据我所知,日志“看起来一样”。但是有成千上万的条目。
编辑:该链接将显示我的电子表格。我把它编辑成只有 44 行。有两个垂直部分。我在左侧发布的消息和右侧的 Mosquitto 日志条目。抱歉,当我将它们粘贴到电子表格中时,分隔符将它们分布在许多列中。前 3 个左右的 pub 看起来不错,但随后 12:13:26 的 pub 出现了套接字错误,尽管订阅者收到了 pub。在那之后,事情似乎也随着超时而变得更糟。
其余的 100 行左右(我没有包括在内)非常相似。超时和套接字错误。但是订阅者得到了酒吧。
pubs 来自我编写的在我的 Raspberry Pi 上运行的 C 程序。订阅者是 OpenHAB 中的项目,它们也位于同一 RPi 上。这是进行发布的 C 代码:
void publish(char *Topic, char *action)
{
mosquitto_lib_init();
mosq = mosquitto_new(NULL,true,NULL);
mosquitto_loop_start(mosq);
mosquitto_connect_async(mosq,MQTT_Host,MQTT_Port,1);
mosquitto_publish(mosq,NULL,Topic,strlen(action),action,2,false);
printf("Mosquitto Sending: %s %s to %s:%d\n",Topic,action,MQTT_Host,MQTT_Port);
}