Android未从Ruby-AMQP推出的消息接收来自RabbitMQ服务器的消息



我正在使用带有ruby-amqp宝石的导轨。它与Rails应用程序本身正常工作,但Android Java客户端无法接收消息。

Android客户端基于此http://simonwdixon.wordpress.com/2011/06/03/getting-petting-with-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的RabbitMQ与计算机的IP地址

连接

问题在于这个

mmodel.exchangedeclare(mexchange,myExchangeType,true);

将其更改为

mmodel.exchangedeclare(mexchange,myExchangeType)(不是被动交换);参考https://groups.google.com/forum/# !! topic/rabbitmq-discuss/hctgueficrg

然后从Ruby Code中删除Exchange.delete(由于删除了交换,您将仅收到一条消息)

最新更新