3

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

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

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

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

4

1 回答 1

3

我认为重新订阅不是开箱即用的配置。但是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');
于 2017-03-19T21:53:34.443 回答