2017-11-15 3 views
1

다시 간단하지만 가정용 문서를 찾을 수 없습니다.docker에서 rabbitmq로 메시지를 보내는 방법은 무엇입니까?

이전에 question에 docker에서 rabbitmq 컨테이너를 실행하는 데 문제가있었습니다. 그것은 해결되었다,하지만 지금은 또 다른 하나

컨테이너가이 라인

docker run -d --hostname my-rabbit --name some-rabbit -p 15672:15672 rabbitmq:3-management 

내가 메시지 전송이 (base tutorial에서) 작업하는 방법을 확인하는 간단한 콘솔 응용 프로그램을 만들려고하여 만든

등장 :

var factory = new ConnectionFactory() 
{ 
    HostName = "localhost", 
    Port = 15672 
}; 

using (var connection = factory.CreateConnection()) 
{ 
    using (var channel = connection.CreateModel()) 
    { 
    channel.QueueDeclare("Test", false, false, false, null); 

    var mess = new RepMessage() 
    { 
     ConnectionString = "TestingString", 
     QueueID = 5 
    }; 

    var jsonified = JsonConvert.SerializeObject(mess); 
    var messBody = Encoding.UTF8.GetBytes(jsonified); 
    channel.BasicPublish("", "Test", null, messBody); 

    Console.WriteLine(string.Format("Message with ConStr={0}, QueueID={1} has been send", mess.ConnectionString, mess.QueueID)); 
    } 
} 

결과가 작동하지 않습니다. 나는 포트를 제거하면 나는이 예제는 고정 표시기와 함께 작동 안되고있다, 그 다음 나의 내부 예외 내가 놓친 게 무엇 No connection could be made because the target machine actively refused it 127.0.0.1:5672

에 변환,

connection.start was never received, likely due to a network timeout 같은 예외 None of the specified endpoints were reachable 및 내부 예외를 수신 무엇입니까?

+0

오 ... 시도했습니다 ... 효과가있었습니다 ... 제스. 이 질문에 답해 주실 수 있습니까? –

답변

5

포트 15672는 rabbitmq 관리 플러그인 웹 인터페이스의 포트입니다. 토끼에게 메시지를 보낼 때 - 다른 포트 (기본적으로 - 5672)에 연결해야합니다. 코드를 변경하여 해당 포트에 연결하고 도커에서 -p 5672:5672을 통해 매핑하십시오.