2017-03-18 8 views
3

Webブラウザでautobahn-js(0.11.2)、バックエンドでクロスバメッセージルータ(v17.2.1)を使用しています。再接続後のWAMP購読

ネットワークが切断された場合(ネットワークの不備など)、autobahn-jsクライアントは定期的に再接続を試みるように設定できます。

ここで私のWebアプリでは、さまざまなWAMPトピックへのサブスクリプションで動的にsession.subscribe('my.topic', myhandleevent)が作成されます。

再接続時にすべてのアクティブなサブスクリプションを再登録する方法に関するベストプラクティスはありますか?それはおそらく設定可能ですか?

答えて

3

私は再サブスクリプションはすぐに設定できないと思います。しかし開く時は事を行いますので、内部のサブスクリプションの初期化を配置し、再接続後に解雇されています

var ses; 
var onOpenFunctions = []; 

function addOnOpenFunction(name) { 
    onOpenFunctions.push(name); 
    if (ses !== null) { 
     window[name](); 
    } 
} 

connection.onopen = function (session, details) { 
    ses = session; 
    for (var i = 0; i < onOpenFunctions.length; i++) { 
     window[onOpenFunctions[i]](); 
    } 
}; 

を次にあなたがこれを行う必要があり、動的にサブスクライブしたい場合:

function subscribeTopic() { 
    session.subscribe('my.topic', myhandleevent) 
} 
addOnOpenFunction('subscribeTopic'); 
+0

感謝を。これはほとんどそれを行います。私はいつもonOpenFunctions配列にsubscribe関数を配置します。なぜなら、各ネットワークドロップで再実行して再接続する必要があるからです。ですから、私は'addOnOpenFunction'の 'if'を削除し、常に最初のブロックに行きます。 – markop

+0

* addOnOpenFunction()*のコードを更新しました。今のところ正しいと答えてください。 –

+0

これについて考えると、これはsubscribe関数のオプションとしてautobahn-jsに含める必要があります。私は機能要求を提出します。 – markop

関連する問題