【问题标题】:android not receiving messages from rabbitmq server with messages pushed from ruby-amqpandroid没有从rabbitmq服务器接收消息以及从ruby-amqp推送的消息
【发布时间】:2014-03-13 11:52:48
【问题描述】:

我正在使用带有 ruby​​-amqp gem 的 rails。它与 rails 应用程序本身工作正常,但 android java 客户端无法接收消息。

android客户端就是基于这个 http://simonwdixon.wordpress.com/2011/06/03/getting-started-with-rabbitmq-on-android-part-1/

mConsumer = new MessageConsumer("192.168.1.123", "nodes.metadata", "fanout");

我的 ruby​​ 实现就是基于这个

EventMachine.next_tick do
  connection = AMQP.connect(:host => '127.0.0.1')
  channel  = AMQP::Channel.new(connection)
  exchange = channel.fanout("nodes.metadata")

  channel.queue("joe", :auto_delete => true).bind(exchange).subscribe do |payload|
    puts "#{payload} => joe"
  end

  channel.queue("aaron", :auto_delete => true).bind(exchange).subscribe do |payload|
    puts "#{payload} => aaron"
  end

  channel.queue("bob", :auto_delete => true).bind(exchange).subscribe do |payload|
    puts "#{payload} => bob"
  end

  exchange.publish("BOS")

  # disconnect & exit after 2 seconds
  EventMachine.add_timer(2) do
    exchange.delete

    # connection.close { EventMachine.stop }
  end
end

当我运行它时它工作正常我在终端中获得发布消息但是 当android正在收听rabbitmq时,我没有在终端中收到消息,而且android也没有收到消息。我用我电脑的IP地址连接了android中的rabbitmq

【问题讨论】:

    标签: android ruby-on-rails ruby rabbitmq amqp


    【解决方案1】:

    问题出在这个

    mModel.exchangeDeclare(mExchange, MyExchangeType, true);

    改成

    mModel.exchangeDeclare(mExchange, MyExchangeType) (不是被动交换); 参考https://groups.google.com/forum/#!topic/rabbitmq-discuss/hCtGUefIcRg

    然后从 ruby​​ 代码中删除 exchange.delete(因为交换被删除,您将只收到一条消息)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 2017-01-19
      • 2020-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多