【问题标题】:MQTT can not connect to Apollo serverMQTT 无法连接到 Apollo 服务器
【发布时间】:2015-02-22 08:41:48
【问题描述】:

从官网下载 Apollo 并安装到 Mac OS X 10.10.2 后,正如主题所说的形式 Apollo 1.7 MQTT Protocol Manual,我在 apache-apollo-1.7/bin/androidMQ/etc 中设置了 mqtt 的连接器/apollo.xml:

<connector id="tcp" bind="tcp://0.0.0.0:61613" protocol="mqtt"/>

然后创建一个代理(androidMQ)并运行:

androidMQ/bin/apollo-broker 运行
像这样的日志:
$ androidMQ/bin/apollo-broker 运行

    _____ .__ .__
   / _ \ ______ ____ | | | | ____
  / /_\ \\____ \ / _ \| | | | /_\
 / | \ |_> > ) |_| |_( )
 \____|__ / __/ \____/|____/____/\____/
         \/|__|阿帕奇阿波罗 (1.7)


加载配置文件'/Users/jijin/services/apache-apollo-1.7/bin/androidMQ/etc/apollo.xml'。
信息 |操作系统:Mac OS X 10.10.2
信息 | JVM:Java HotSpot(TM) 64 位服务器 VM 1.6.0_65 (Apple Inc.)
信息 |阿波罗:1.7(在:/Users/jijin/services/apache-apollo-1.7)
信息 |操作系统将打开文件限制限制为:6250
信息 |起始存储:leveldb 存储在 /Users/jijin/services/apache-apollo-1.7/bin/androidMQ/data
信息 |接受连接:tcp://0.0.0.0:61613
信息 |管理界面位于:https://127.0.0.1:61681/
信息 |管理界面位于:http://127.0.0.1:61680/`

然后,我将它与 ruby​​ gem 一起使用:ruby-mqtt 我的脚本是:

subsctibe.rb

require 'rubygems'
require 'mqtt'
MQTT::Client.connect("localhost", 1883) do |client|
  client.get("test") do |topic, message|
    puts "#{topic}---content: #{message}\n"
  end
end   

发布.rb

require 'rubygems'
require 'mqtt'
MQTT::Client.connect("localhost", 1883) do |c|
  c.publish("test", "gogogo!")
end

运行的时候报错:

$ ruby​​ lib/mqtt/apollo_subscribe.rb
/Users/jijin/.rvm/gems/ruby-1.9.3-p547/gems/mqtt-0.3.1/lib/mqtt/client.rb:496:in `block in receive_connack': Connection denied: bad user name or密码(MQTT::ProtocolException)
    来自 /Users/jijin/.rvm/rubies/ruby-1.9.3-p547/lib/ruby/1.9.1/timeout.rb:69:in `timeout'
    来自 /Users/jijin/.rvm/gems/ruby-1.9.3-p547/gems/mqtt-0.3.1/lib/mqtt/client.rb:486:in `receive_connack'
    来自 /Users/jijin/.rvm/gems/ruby-1.9.3-p547/gems/mqtt-0.3.1/lib/mqtt/client.rb:277:in `connect'
    来自 /Users/jijin/.rvm/gems/ruby-1.9.3-p547/gems/mqtt-0.3.1/lib/mqtt/client.rb:93:in `connect'
    来自 lib/mqtt/apollo_subscribe.rb:4:in `'

当我将主机和端口更改为:

MQTT::Client.connect("test.mosquitto.org", 1883)    

测试没问题,但是当我将主机更改为 localhost 时,无论我将端口更改为 1883 还是 61613,都发生了错误。 我现在不知道该怎么办。

【问题讨论】:

    标签: ruby mqtt apollo


    【解决方案1】:

    好吧,好像没人帮我,我反复看到apollo.xml这个配置文件,一不小心就给解决了。取消注释以禁用虚拟主机的安全性,

    <!-- Uncomment to disable security for the virtual host -->

    <authentication enabled="false"/>

    也许我应该更仔细地阅读配置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 2014-10-23
      • 2023-03-22
      相关资源
      最近更新 更多