2011-01-03 3 views
1

Comut 기능을 위해 Stomp/Orbited를 사용하고 있습니다.스톰프 - 각각 고유 핸들러를 사용하는 복수 구독

여러 채널을 처리하기 위해, 나는이 일을 끝낼 :

stomp.onmessageframe = function(frame) { 

경우 (frame.headers [ '대상'] == '/ thisFeed /') { // 처리 thisFeed }

(frame.headers [ '대상'] == '/ thatFeed /') {// 처리 thatFeed}

.... OK이고, I 추측 경우

. 하지만로드 타임에 피드를 처리하는 방법을 모르는 경우에는 어떻게해야합니까? 나는 이런 식으로 할 수 있기를 바란다 :

stomp.subscribe ('someOtherFeed', someOtherFeedHandler);

그런 식으로 구독하면 핸들러를 정의 할 수 있습니다.

답변

0

나는 한 가지 해결책을 생각해 냈지만 너무 예쁘다.

나는 스톰 메시지를 작성

, 나는 파이썬과 같이 헤더로 "처리기"속성을 추가

conn.send('Frank the Wonder Llama", destination="/infoAboutLlamas/", handler='llamas') 

다음, 자바 스크립트 :

stomp.onmessageframe = function(frame) { 
    window[frame.headers['handler']]() //Execute the function named by the handler 
} 

을 ... 그러면 함수 llamas()가 호출됩니다. 그런 다음 원하는 위치에서 라마를 정의 (다시 정의) 할 수 있습니다.

이제 이것이 최적의 솔루션이 될 수 없다고 확신합니다. 반면에 파이썬에서 사용하고자하는 핸들러를 지정하는 유연성을 제공합니다. 그러나 진지하게, 나는 더 좋은 방법이 있다고 생각하고있다.