为了账号安全,请及时绑定邮箱和手机立即绑定

无法将 paho mqtt 连接到在 oracle virtualbox 上运行的 vernemq

无法将 paho mqtt 连接到在 oracle virtualbox 上运行的 vernemq

扬帆大鱼 2022-07-12 18:01:53
我正在尝试将 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)循环之前。


查看完整回答
反对 回复 2022-07-12
?
繁花如伊

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


查看完整回答
反对 回复 2022-07-12
  • 2 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号