2016-08-09 2 views
0

원격 RMQ 서버의 교환기로 메시지를 전송하는 Objective C 제공자가 있습니다. 대기열에서 수신 대기하는 소비자가 해당 교환에 바인드했습니다. 팬 아웃을 사용하고 있습니다. Xcode에서 응용 프로그램을 실행할 때 모두 제대로 작동하면 소비자가받은 메시지가 전송됩니다.Xcode가 수행하는 동안 iPhone 장치에서 보낼 때 RMQ에 메시지가 나타나지 않음

그러나 iPhone 장치에서 응용 프로그램을 실행하면 메시지가 파이프 끝 부분에 표시되지 않습니다. 우선 확인하는

- (void) send { 

    RMQConnection *conn = [[RMQConnection alloc] initWithUri:@"amqp://<user>:<pass>@<ip>:5672" 
                delegate:[RMQConnectionDelegateLogger new]]; 



    //RMQConnection *conn = [[RMQConnection alloc] initWithDelegate:[RMQConnectionDelegateLogger new]]; 

    [conn start]; 

    id<RMQChannel> ch = [conn createChannel]; 
    RMQExchange *x = [ch fanout:@"logs"]; 

    NSString *mobilemsg = @"{\"test\" : \"test\" }"; 




    [x publish:[mobilemsg dataUsingEncoding:NSUTF8StringEncoding]]; 
    NSLog(@"Sent %@", mobilemsg); 

    [conn close]; 

} 
+0

이렇게 보이지는 않지만 다음과 같이 URL에 user : password 조합을 사용합니다. RMQConnection * conn = [[RMQConnection alloc] initWithUri : @ "amqp : // user : password @ : 5672"delegate : [ RMQConnectionDelegateLogger new]]; –

+0

수신 방법을 추가했습니다. 앱은 다른 비 IOS 클라이언트가 게시 한 메시지를받습니다. 심지어 메시지가 교환기에 도착하지 않는 것처럼 보입니다. 이것은 IOS 클라이언트에서만 발생합니다. 오류 메시지가 없습니다. –

+0

일부 구성 오류가있는 것처럼 보이지만 아직 누락 된 것이 확실하지 않습니다. –

답변

0

뭔가 :

여기에 내 보내기 방법입니다 귀하의 아이폰이 RabbitMQ 브로커와 동일한 네트워크에 있습니다. 브로커가 로컬 네트워크의 시스템에서 실행되고 있습니까? 그렇다면 휴대 전화가 Wi-Fi를 통해 해당 네트워크에 연결되어 있습니까? 예. Ribbit 브로커와 동일한 시스템의 HTTP 서버에 전화의 HTTP 클라이언트를 연결 하시겠습니까?

아직이 기기에 대한 클라이언트 테스트가 없으므로 버그가 발생할 수 있습니다. 이 경우 Google의 Issues 페이지에 신고하십시오.

[conn close]; 행을 제거하면 어떻게되는지보고 싶습니다. 그렇다고해서는 안되지만 내부 대기열이 올바르지 않고 연결을 조기에 닫을 수도 있습니다.