Possiedo un'applicazione client Python Autobahn che utilizza Twisted collegata a un server Crossbar.io. L'applicazione client può riconnettersi correttamente dopo aver perso la connettività di rete utilizzando ReconnectingClientFactory. Il client registra un nome di chiamata quando è connesso in modo che altre applicazioni possano chiamarlo. Funziona sempre sulla connessione iniziale.Come ri-registrare un callee WAMP dopo una riconnessione mediante Autobahn Python con Twisted ReconnectingClientFactory?
Tuttavia, durante il ripristino da una connessione persa, il nome del chiamato non può essere registrato nuovamente perché il nome del chiamante è ancora registrato dalla precedente connessione persa. Ciò comporta l'errore "wamp.error.procedure_already_exists". Poiché la registrazione del nome del chiamato è ancora associata alla precedente connessione persa, devo annullare la registrazione del vecchio nome del chiamato.
L'unica soluzione che riesco a vedere è generare e registrare un nuovo nome di chiamata unico su ciascuna connessione per evitare di scontrarsi con i nomi di chi si è registrato in precedenza.
C'è un modo migliore o più semplice per affrontare questo? Sembra che il protocollo WAMP consentirebbe di annullare la registrazione di un nome di chiamata da un'altra connessione usando l'ID di registrazione, ma la libreria client Python Autobahn non sembra consentirlo.
Puoi condividere il tuo codice? –