У меня есть клиентское приложение Autobahn Python с использованием Twisted, который подключен к серверу Crossbar.io. Клиентское приложение может успешно повторно подключиться после потери сетевого подключения, используя ReconnectingClientFactory. Клиент регистрирует имя вызываемого абонента при подключении, чтобы другие приложения могли его вызвать. Это всегда срабатывает при первоначальном подключении.Как перерегистрировать сообщение WAMP после повторного подключения с использованием Autobahn Python с Twisted ReconnectingClientFactory?
Однако при восстановлении после утерянного соединения имя вызываемого абонента не может быть перерегистрировано, поскольку имя вызываемого абонента все еще зарегистрировано из предыдущего потерянного соединения. Это приводит к ошибке «wamp.error.procedure_already_exists». Поскольку регистрация имени вызываемого абонента все еще связана с предыдущим потерянным соединением, я должен отменить регистрацию старого имени вызываемого абонента.
Единственное решение, которое я вижу, - это создать и зарегистрировать уникальное новое имя вызываемого абонента в каждом соединении, чтобы избежать столкновения с ранее зарегистрированными именами вызываемых лиц.
Есть ли лучший или простой способ справиться с этим? Похоже, что протокол WAMP позволяет отменить регистрацию имени вызываемого абонента из другого соединения с использованием идентификатора регистрации, но клиентская библиотека Autobahn Python, похоже, не позволяет этого.
Не могли бы вы предоставить кому-то свой код? –