1

コメット機能に Stomp / Orbited を使用しています。

複数のチャンネルを扱うために、私はこれをやっています:

stomp.onmessageframe = function(frame) {

if (frame.headers['destination'] == '/thisFeed/') { //thisFeed を処理する }

if (frame.headers['destination'] == '/thatFeed/') { //thatFeed を処理する }

....それは大丈夫だと思います。しかし、ロード時にフィードをどのように処理したいのかわからない場合はどうすればよいでしょうか? 私はこのようなことができるようにしたい:

stomp.subscribe('someOtherFeed', someOtherFeedHandler);

そうすれば、サブスクライブするときに、そのときだけハンドラーを定義できます。

4

1 に答える 1

0

私は1つの解決策を思いつきましたが、それはきれいとはほど遠いものです。

ストンプ メッセージを作成するとき、Python のように「ハンドラ」プロパティをヘッダーとして追加します。

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

次に、JavaScriptで:

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

...それで、関数 llamas() が呼び出されます。その後、好きな場所でラマを定義 (および再定義) できます。

これが最適な解決策ではないことは確かです。一方で、Python で使用したいハンドラーを指定する柔軟性が少し得られることも気に入っています。しかし、真剣に、私はより良い方法があると考えています。

于 2011-01-04T19:58:52.467 に答える