重新连接后重新建立 WAMP 订阅

reestablish WAMP subscriptions after reconnect

我在 Web 浏览器中使用 autobahn-js (0.11.2),在后端使用 crossbar 消息路由器 (v17.2.1)。

万一网络断开连接(例如由于网络不佳),autobahn-js 客户端可以配置为尝试定期重新连接。

现在,在我的由高速公路提供支持的网络应用程序中,对不同 WAMP 主题的订阅是动态创建的 session.subscribe('my.topic', myhandleevent)

是否有关于如何在重新连接时重新注册所有活动订阅的最佳做法?这甚至可以配置吗?

我认为重新订阅不是开箱即用的配置。但是 onopen 在重新连接后被触发,所以在其中放置订阅初始化,将会做这件事:

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');