我在 mosquitto 上看到消息持久性和 qos=2 的消息传递不一致。有什么我做错了吗?
我有一个简单的测试应用程序,它使用 clientId="receive-client" 注册消费主题,但立即断开连接。然后它以 clientId="send-client" 的身份连接并发布 10 条消息,“message #1”...“message #10”。然后断开连接,等待五秒钟,然后在打印和计算收到的消息时再次连接以使用“receive-client”消费。
结果不一致。有时我收到 6 条消息,有时是 8 条。典型的输出是这样的:
WARN[0005] GOT A MESSAGE:message #1
WARN[0005] GOT A MESSAGE:message #2
WARN[0005] GOT A MESSAGE:message #3
WARN[0005] GOT A MESSAGE:message #4
WARN[0005] GOT A MESSAGE:message #5
WARN[0005] GOT A MESSAGE:message #6
WARN[0005] GOT A MESSAGE:message #7
WARN[0005] GOT A MESSAGE:message #8
WARN[0305] PAUSE
WARN[0605] received message count=8
我的版本信息是 1.4.15。我的 mosquitto.conf 是:
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
allow_anonymous false
password_file /etc/mosquitto/passwd
log_dest file /var/log/mosquitto/mosquitto.log
最初 /var/lib/mosquitto/mosquitto.db 直到运行了几次迭代才会出现。我的测试应用在这里:
import (
mqtt "github.com/eclipse/paho.mqtt.golang"
log "github.com/sirupsen/logrus"
"time"
)
var receivedMsg int
func Persist() {
const TOPIC = "test"
const URL = "tcp://localhost:1883"
const USERNAME = "myuser"
const PASSWORD = "mypassword"
defer printReceived()
options := mqtt.NewClientOptions().AddBroker(URL).SetUsername(USERNAME).SetPassword(PASSWORD)
options.SetCleanSession(false)
options.SetConnectRetry(true)
options.SetConnectRetryInterval(10 * time.Millisecond)
料青山看我应如是
慕码人8056858
随时随地看视频慕课网APP
相关分类