-1

您好我正在尝试使用 RabbitMQ 在 Android 中开发一个聊天应用程序。该代码在我本地安装的 rabbitMQ 服务器上运行良好。

为了向队列发送消息,我的 android APP 需要它正在与之交谈的 robbitMQ 服务器的地址。我可以在 cloudfoundry 上使用 RabbitMQ,在应用程序代码中替换我的本地 rabbitMQ 吗?

ConnectionFactory factory = new ConnectionFactory();
 factory.setHost("<RobbitMQ server>");


 Connection connection = factory.newConnection();
 Channel channel = connection.createChannel();
 channel.exchangeDeclare(EXCHANGE_NAME, "fanout", true);
 channel.queueDeclare(QUEUE_NAME, false, false, false, null);
4

1 回答 1

1

您将面临几个问题:

  1. cloudfoundry.com 上的 RabbitMQ 服务的地址将被动态分配……您可以在 web 应用程序中从 cloudfoundry.com 上的环境中查找它,但您无法在远程原生 Android 应用程序中轻松获取它。
  2. 现在,您无法将远程 AMQP 连接到 cloudfoundry.com 上的服务 - 只能Cloud Foundry vcap 环境中。因此,即使您有地址,直接从 Android 应用程序通过 JMS 的 AMQP 连接也无法正常工作。

在 EC2 实例上运行 RabbitMQ 怎么样?或者为你的 Android 应用程序构建一个 Web 应用程序后端,它与在 Cloud Foundry 实例中运行的 RabbitMQ 通信,而 Android 通过 SockJS 与后端通信呢?

于 2012-06-14T10:54:33.897 回答