2012-11-15 3 views
2

ActiveMQ 5.6에서 Apollo 1.5로 전환하려고합니다. 주제에 대해 게시/구독을 사용하여 메시지를 교환하는 두 개의 소프트가 있습니다.ActiveMQ to Apollo 전환, Openwire to Stomp 프로토콜 구성

  • 첫 번째가 C++ 및 TCP와은 OpenWire 사용
  • 두 번째는 ActiveMQ는 모든 것을

가 잘 작동 WebSocket을 가진 자바 스크립트 사용 스톰, 그리고 내가 보낸 메시지를 읽을 수 및 두 가지 소프트 모두에 글을 쓰면 클라이언트를 변경하지 않았습니다.

이제 C++ 소프트 (openwire 사용)에서 메시지를 보내고 JS 소프트로 읽으려고하면 오류가 발생합니다. 사실 나는 header content-type : "protocol/openwire"라는 메시지를 받지만, 나는 기대하지 않습니다. 나는 또한 <과 노력

<connector id="tcp" bind="tcp://0.0.0.0:61613"> 
    <openwire max_inactivity_duration="-1" max_inactivity_duration_delay="-1" /> 
    <stomp max_header_length="10000" die_delay="-1" /> 
</connector> 
<connector id="ws" bind="tcp://0.0.0.0:61623"> 
    <stomp max_header_length="10000" die_delay="-1" /> 
</connector> 

는 /> TCP 및 WS 커넥터에, 그 auto로되어있다 감지 클라이언트 프로토콜을 감지하지만 나던 작업 :

내가 apollo.xml 커넥터 부분을 구성하는 방법입니다 어느 한 쪽.

다른 사람이 나를 알아낼 수 있습니까?

, 감사합니다


편집 :

내가 스톰 프로토콜 메시지를 수신 할 수 있지만, 그들은 매우 이상하게 형식의, 그리고 심지어 stomp.js 실패하게 비 텍스트 문자를 포함 발견

메시지를 구문 분석하고 메시지 본문을 정확하게 채 웁니다.

ActiveMQ를

 
    "MESSAGE 
    message-id:ID:myID-61443-1352999572576-0:0:0:0:0 
    class:Message.PointToPoint 
    destination:/topic/my-topic 
    timestamp:1352999626186 
    expires:0 
    subscription:sub-0 
    priority:4 

    <PointToPoint xmlns="Message" ><SourceId>u_23</SourceId><TargetId>u_75</TargetId></PointToPoint>" 

아폴로

 
    "MESSAGE 
    subscription:sub-0 
    destination: 
    content-length:331 
    content-type:protocol/openwire 
    message-id:xps-broker-291 

    Eç{#ID:myID-61463-1352999939140-0:0emy-topicn{#ID:myID-61463-1352999939140-0:0; Å??<PointToPoint xmlns="Message" ><SourceId>u_23</SourceId><TargetId>u_75</TargetId></PointToPoint>(class Message.PointToPoint 
" 

당신을 수행 여기

같은 메시지의 ActiveMQ은 OpenWire에서 한 번받은 후, 아폴로 같은 C++ 출판사와 JS 가입자에은 OpenWire입니다 아폴로에서 문제가 될 수 있다고 생각하십니까?

답변

2

ActiveMQ 5.6은 논리 OpenWire 메시지를 STOMP 클라이언트의 텍스트 표현으로 변환합니다. 아폴로는 현재 아직이 기능을 지원하지 않습니다! 참조 :(:.

https://issues.apache.org/jira/browse/APLO-267

를 그냥 풀은 OpenWire 메시지를 취하고 STOMP 메시지의 본문으로 사용 BTW STOMP 메시지에 이진 데이터를 사용하여 콘텐츠 길이 헤더만큼 완전히 유효합니다

+0

어제 답변을 주셔서 감사합니다. 나는 어제 jira를 확인했는데, 티켓은 거기에 없었고 제작해야하는지 잘 모르겠습니다. 감사합니다. – Typedef