2014-06-23 5 views
1

주제와 대기열에 activeMQ 5.9.1을 사용하는 Java Swing 응용 프로그램이 있습니다.MQTT (paho) + activeMQ를 사용하여 메시지를받는 올바른 방법은 무엇입니까?

내 스윙 어플 리케이션을 웹으로 마이그레이션하는 것이므로 activeMQ + MQTT (파호) 자바 스크립트 라이브러리를 사용하여 몇 가지 증명을하고 있습니다. - 몇 가지 주제를 청취

<transportConnector name="mqtt+ws" uri="ws://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600&amp;transport.defaultKeepAlive=30000"/> 

내가 MQTT (http://eclipse.org/paho/clients/js/ PAHO)와 몇 가지 예제를 구현 한 :

나는 activemq.xml의 것을 사용할 수있다. 주제에

function ramdomID(length) { 
    var text = ""; 
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; 
    for(var i=0; i<length; i++) { 
     text += possible.charAt(Math.floor(Math.random() * possible.length)); 
    } 
    return text; 
} 

var client = new Messaging.Client('192.168.240.17', 1883, ramdomID(20)); 

client.onConnectionLost = onConnectionLost; 
client.onMessageArrived = onMessageArrived; 
client.connect({onSuccess:onConnect}); 

function onConnect() { 
    console.log("onConnect"); 
    client.subscribe("/KeepAlive"); 
} 

function onConnectionLost(responseObject) { 
    if (responseObject.errorCode !== 0) { 
     console.log("onConnectionLost: "+responseObject.errorMessage); 
    } 
} 

function onMessageArrived(message) { 
    console.log("onMessageArrived: "+message.payloadString); 
} 

응답은 정확하게 수신되지만, 복구 된 메시지는 자바 문자열 객체 참조 :

onMessageArrived: ﭭsr<com.my.project.bp.jms.MyImplementedMessageLmessagetLjava/lang/String;Ltypeq~xppt KeepAlivey 

누구나 자바 응용 프로그램에 쓴다면 친절한 메시지를받을 수있는 올바른 방법을 알고있다 activeMQ 주제를 직접?

답변

0

ActiveMQ에서 브라우저로 이동하려면 ActiveMQ에서 웹 소켓 만 사용하고 웹 소켓을 통한 STOMP 자바 스크립트 라이브러리를 사용하십시오. 메시지 본문은 친숙한 텍스트 객체입니다. 링크는 여기 내 대답 : Best way to display dynamic data in a webpage

+0

응답 해 주셔서 감사합니다. 하지만 웹 소켓을 통해 MQTT를 사용하고 있습니다. 내 오류를 발견 : 서버 측에서, 나는 JMS를 사용하는 몇 가지 기능을 가지고 있으며 그들은 주제를 작성하기 위해 javax.jms.ObjectMessage 객체를 사용하고있었습니다. 이 객체를 javax.jms.TextMessage로 변경하고 JSON에서 메시지를 설정하면 모두 정상적으로 작동합니다! –

관련 문제