Восстановить подписки WAMP после повторного подключения
Я использую autobahn-js (0.11.2) в веб-браузере и маршрутизатор пересекающихся сообщений (v17.2.1) в бэкэнде.
В случае отключения сети (например, из-за плохой сети) клиент autobahn-js может быть настроен на периодическое повторное подключение.
Теперь в моем веб-приложении на основе автобана создаются подписки на разные темы WAMP session.subscribe('my.topic', myhandleevent)
динамически.
Существует ли передовая практика, как перерегистрировать все активные подписки при повторном подключении? Это может быть даже настраивается?
1 ответ
Я думаю, что повторные подписки не настраиваются из коробки. Но 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');