2016-10-12 6 views
0

나는 바우어/tcp 전송 프로토콜을 통한 브로커/퍼블리셔의 자바 액티브 MQ 구현 방식을 가지고있다. 파이썬 클라이언트에 연결하려고 합니다만, "stomp"기반의 모든 문서는 stomp protcol이 아닌 것 같습니다. 그리고 기본 예제를 시도하면 Java 브로커 측에서 오류가 발생합니다 :ActiveMQ 자바 브로커, 파이썬 클라이언트

String localVMurl = "vm://localhost"; 
    String remoterURL = "tcp://localhost:5001"; 
    BrokerService broker = new BrokerService(); 
    broker.addConnector(localVMurl); 
    broker.addConnector(remoterURL); 
    broker.setAdvisorySupport(true); 
    broker.start(); 


    ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(localVMurl+"?create=false"); 
    Connection connection = connectionFactory.createConnection(); 

및 파이썬은 실패

[ActiveMQ Transport: tcp:///127.0.0.1:[email protected]] WARN org.apache.activemq.broker.TransportConnection.Transport - Transport Connection to: tcp://127.0.0.1:62860 failed: java.io.IOException: Unknown data type: 80 

브로커 코드는 자바에서 매우 바닐라입니다. 나는 파이썬에서 기본적인 "tcp : // localhost :"연결을 사용하여 온라인으로 아무것도 찾을 수 없다. 내가 여기서 뭔가 잘못하고있는거야?

import stomp 

class MyListener(stomp.ConnectionListener): 
    def on_error(self, headers, message): 
     print('received an error "%s"' % message) 
    def on_message(self, headers, message): 
     print('received a message "%s"' % message) 

    conn = stomp.Connection(host_and_ports = [('localhost', 5001)]) 
    conn.start() 
    conn.connect('admin', 'password', wait=True) 

나는 오류 얻을 : 그것은 까다로운 조금 대답을하지만 오류에서 난 당신이에 STOMP 클라이언트를 연결하려고 생각 것입니다 브로커 구성을 보지 않고

IndexError: list index out of range 

답변

0

을 OpenWire 전송이 작동하지 않으면 브로커에 STOMP TransportConnector를 구성하고 STOMP 클라이언트를 가리켜 야합니다.

ActiveMQ STOMP 설명서를 참조하십시오. 나는 브로커 코드, 매우 바닐라를 추가 한

brokerService.addConnector("stomp://0.0.0.0:61613"); 
+0

:

당신의 라인을 따라 뭔가를 할 거라고 내장 된 브로커 STOMP 지원을 추가합니다. – user1772250

+1

당신이 알아야 할 모든 것은 문서에 있습니다. 브로커에 STOMP 전송을 추가하고 STOMP 클라이언트가 해당 끝점을 가리 키도록합니다. –

관련 문제