2017-09-14 9 views
1

を働いていない:NG2ストンプクライアントは(退会)私はNG2-ストンプ・サービスを使用してソケットに加入しています

this.fooSubscription = this.stomp.subscribe('/topic/foo', (res) => { 
    console.log('do stuff with res'); 
}); 

これがデータを受信するために素晴らしい作品。しかし、ある時点(ボタンがクリックされた時)にデータの受信を停止したいと思います。接続はまだ他のサブスクリプションで使用されているので、この特定のサブスクリプションの登録を解除するだけです。ボタンがクリックされたとき、私はこの出来事を持っている:

unsubscribeFoo() { 
    this.fooSubscription.unsubscribe(); 
} 

しかし、私はまだはっきりとそれがサーバーから送信されていますように、データは、このサブスクリプションから取得しています。私が退会時に

、私は有望に見えるStompのデバッグ出力から、私のブラウザコンソールでこれを参照してください。

>>> UNSUBSCRIBE 
id:sub-3 

しかし残念ながら、私はまだちょうど瞬間、後でデータを取得します。

+0

同じ問題がありますが、修正がありますか? – Mardari

+0

@Mardari Nopeでは、複数の接続を開き、それぞれに1つのサブスクリプションを作成するだけで、特定の接続を切断して個々のサブスクリプションのデータフローを停止できました。良い方法があるはずですが、私はそれを見つけることができませんでした。 – David

答えて

0

私はあなたがボタンがクリックされたときのようなストンプを切断する必要があると思う:

this.stomp.disconnect(); 

コンソールメッセージが通過来て停止する「RESとものを行う」を起こす必要がありましたが、それが切断されませんどのようなstompクライアント。

以上が動作しない場合は、stompClient

for (const sub in this.stomp.subscriptions) { 
    if (this.stomp.subscriptions.hasOwnProperty(sub)) { 
    this.stomp.unsubscribe(sub); 
    } 
} 

を外す前に、すべてのstompclientサブスクリプションを通過し、退会しようと、私は直接stompJsを使用している(いないNG2-STOMP)、これは私のために働いてきました。

+0

残念ながら、積極的にデータを受信して​​いる他のサブスクリプションがまだ残っているため、切断できません。すべてのサブスクリプションが同じ接続を使用しています。私はちょうど1つの特定のサブスクリプションからのデータを停止したい。 – David

関連する問題