我正在嘗試將 paho mqtt 客戶端連接到運行 ubuntu 的 virtualbox 上的 vernemq 消息代理。我無法向代理發布消息并隨后通過訂閱同一主題來閱讀該消息。當我嘗試運行程序時,我沒有收到任何錯誤或“與結果代碼 rc 連接”的確認。我在本地 ubuntu 機器上嘗試過同樣的事情,它可以工作。下面是我的 vernemq.conf 文件和 client.py 文件,用于發布和訂閱。accept_eula = yesallow_anonymous = onallow_register_during_netsplit = offallow_publish_during_netsplit = offallow_subscribe_during_netsplit = offallow_unsubscribe_during_netsplit = offallow_multiple_sessions = offcoordinate_registrations = onmax_inflight_messages = 20max_online_messages = 1000max_offline_messages = 1000max_message_size = 0upgrade_outgoing_qos = offlistener.max_connections = 10000listener.nr_of_acceptors = 10listener.tcp.default = 127.0.0.1:1883listener.vmq.clustering = 0.0.0.0:44053listener.http.default = 127.0.0.1:8888systree_enabled = onsystree_interval = 20000graphite_enabled = offgraphite_host = localhostgraphite_port = 2003graphite_interval = 20000shared_subscription_policy = prefer_localplugins.vmq_passwd = offplugins.vmq_acl = onplugins.vmq_diversity = offplugins.vmq_webhooks = offplugins.vmq_bridge = offmetadata_plugin = vmq_plumtreevmq_acl.acl_file = /etc/vernemq/vmq.aclvmq_acl.acl_reload_interval = 10vmq_passwd.password_file = /etc/vernemq/vmq.passwdvmq_passwd.password_reload_interval = 10vmq_diversity.script_dir = /usr/share/vernemq/luavmq_diversity.auth_postgres.enabled = offvmq_diversity.postgres.ssl = offvmq_diversity.postgres.password_hash_method = cryptvmq_diversity.auth_cockroachdb.enabled = offvmq_diversity.cockroachdb.ssl = onvmq_diversity.cockroachdb.password_hash_method = bcryptvmq_diversity.auth_mysql.enabled = offvmq_diversity.mysql.password_hash_method = passwordvmq_diversity.auth_mongodb.enabled = offvmq_diversity.mongodb.ssl = offvmq_diversity.auth_redis.enabled = offvmq_bcrypt.pool_size = 1log.console = filelog.console.level = infolog.console.file = /var/log/vernemq/console.loglog.error.file = /var/log/vernemq/error.log有人可以指出我在這里做錯了什么。我的最終目標是將這個 vernemq 代理與 AWS IoT 連接起來。謝謝!
2 回答

呼啦一陣風
TA貢獻1802條經驗 獲得超6個贊
你永遠不會到達, client.loop_forever()
因為你永遠不會while (True)
在它之前退出循環。
更改client.loop_forever()
為client.start_loop()
并將其移動到while (True)
循環之前。

繁花如伊
TA貢獻2012條經驗 獲得超12個贊
如果您在 VirtualBox 中運行并且腳本在主機中運行,您將無法訪問 127.0.0.1 上的 VerneMQ,您需要獲取 VM 的 IP 并通過以下方式連接到該 IP:
VBoxManage guestproperty get <vmname> "/VirtualBox/GuestInfo/Net/0/V4/IP"
參考https://www.virtualbox.org/manual/ch08.html
添加回答
舉報
0/150
提交
取消