我在我的Ubuntu 16.04服务器上安装了Rabbit MQ。之后,我为RabbitMQ启用了MQTT的插件。在rabbitmq-plugins list
中,我可以看到MQTT插件已在服务器上启用并运行。
然后我在此位置为MQTT添加了以下配置文件
/etc/rabbitmq/rabbitmq.config
并重新启动服务器:
[{rabbit, [{tcp_listeners, [5672]}]},
{rabbitmq_mqtt, [{default_user, <<"myuser">>},
{default_pass, <<"mypass">>},
{allow_anonymous, false},
{vhost, <<"/">>},
{exchange, <<"amq.topic">>},
{subscription_ttl, 1800000},
{prefetch, 10},
{ssl_listeners, []},
%% Default MQTT with TLS port is 8883
%% {ssl_listeners, [8883]}
{tcp_listeners, [1883]},
{tcp_listen_options, [{backlog, 128},
{nodelay, true}]}]}
].
现在当我尝试向rabbitmq服务器发布消息时,如:
import paho.mqtt.publish as publish
import paho.mqtt.client as mqtt
publish.single('/',
payload='hello world',
hostname='xxx.xxx.xxx.xxx', # My servers IP address
auth={'username':'myuser', 'password':'mypass'},
port=1883,
protocol=mqtt.MQTTv311)
它给了我这个错误:
paho.mqtt.MQTTException:连接被拒绝:用户名或密码错误。
现在没有加密。那么我做错了什么?
我尝试了与Mosquitto MQTT Broker相同的程序,它运行良好。我认为问题在于我的rabbitmq配置。