I have an Autobahn Python client application using Twisted which is connected to a Crossbar.io server. The client application can successfully reconnect after losing network connectivity using the ReconnectingClientFactory. The client registers a callee name when connected so that other applications can call it. This always works on the initial connection.
However, when recovering from a lost connection, the callee name cannot be re-registered because the callee name is still registered from the prior lost connection. This results in the error 'wamp.error.procedure_already_exists'. Because the callee name registration is still associated with the prior lost connection, I am to unregister the old callee name.
The only solution I can see is to generate and register a unique new callee name on each connection to avoid colliding with prior registered callee names.
Is there a better or simpler way to deal with this? It seems that the WAMP protocol would allow unregistering a callee name from another connection using the registration id, but the Autobahn Python client library does not seem to allow this.