2012-06-13 5 views
-1

안녕하세요, RabbitMQ를 사용하여 Android에서 채팅 응용 프로그램을 개발하려고합니다. 로컬에 설치된 rabbitMQ 서버에서 코드가 올바르게 작동합니다.cloudboundry의 RabbitMQ를 사용하는 Android 앱

Inordrer가 대기열로 메시지를 보냅니다. 내 안드로이드 APP는 그것이 이야기하고있는 robbitMQ 서버의 주소가 필요합니다. 애플리케이션 코드에서 로컬 rabbitMQ를 대체하여 cloudboundry에서 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); 

답변

1

당신은이 문제의 몇 직면하게 될 : cloudfoundry.com에 RabbitMQ 서비스의 주소가 동적으로 할당됩니다

    1. ... 당신이 환경에서 그것을 볼 수 있습니다 cloudfoundry.com 웹 애플 리케이션에 있지만 원격 네이티브 안드로이드 애플 리케이션에서 쉽게 얻을 수 없습니다.
    2. 지금은 cloudfoundry.com의 서비스에 원격 AMQP 연결을 만들 수 없습니다. 내에서 Cloud Foundry vcap 환경에서만 가능합니다. 따라서 주소가 있더라도 Android 응용 프로그램에서 직접 JMS를 통한 AMQP 연결은 작동하지 않습니다.

    EC2 인스턴스에서 RabbitMQ를 실행하는 것은 어떻습니까? 또는 Cloud Foundry 인스턴스에서 실행되는 RabbitMQ와 SockJS를 통해 Android가 백엔드와 대화하는 Android 앱용 웹 앱 백엔드를 작성하는 방법은 무엇입니까?

  • +0

    감사합니다. 나는 긴 풀링을 위해 혜성을 사용하여 webapp를 만들 것이라고 생각한다. –

    +0

    나는 Comet 대신 SockJS를보고, RabbitMQ 팀에서오고, 긴 폴링과 웹 소켓 모두에서 잘 작동하도록한다. –

    +0

    고마워, 나는 Sock.js를 탐험 할거야. Comet이 org.apache.coyote.http11.Http11NioProtocol을 위해 Servlet.xml을 수정해야 할 필요가 있다고 말했 다. cloudfoundry로 Servelt.xml을 수정할 수 있습니까? –

    관련 문제