如何在使用Autobahn Python和Twisted ReconnectingClientFactory重新连接后重新注册WAMP被调用方?

如何在使用Autobahn Python和Twisted ReconnectingClientFactory重新连接后重新注册WAMP被调用方?,python,twisted,autobahn,crossbar,autobahnws,Python,Twisted,Autobahn,Crossbar,Autobahnws,我有一个使用Twisted的Autobahn Python客户端应用程序,它连接到Crossbar.io服务器。客户端应用程序可以使用ReconnectingClientFactory在失去网络连接后成功重新连接。客户端在连接时注册被调用方名称,以便其他应用程序可以调用它。这始终适用于初始连接 但是,从丢失的连接中恢复时,无法重新注册被叫方名称,因为被叫方名称仍然是从先前丢失的连接中注册的。这将导致错误“wamp.error.procedure已经存在”。由于被调用方名称注册仍与先前丢失的连接相

我有一个使用Twisted的Autobahn Python客户端应用程序,它连接到Crossbar.io服务器。客户端应用程序可以使用ReconnectingClientFactory在失去网络连接后成功重新连接。客户端在连接时注册被调用方名称,以便其他应用程序可以调用它。这始终适用于初始连接

但是,从丢失的连接中恢复时,无法重新注册被叫方名称,因为被叫方名称仍然是从先前丢失的连接中注册的。这将导致错误“wamp.error.procedure已经存在”。由于被调用方名称注册仍与先前丢失的连接相关联,因此我需要注销旧的被调用方名称

我能看到的唯一解决方案是在每个连接上生成并注册一个唯一的新被调用方名称,以避免与以前注册的被调用方名称冲突


有更好或更简单的方法来处理这个问题吗?WAMP协议似乎允许使用注册id从另一个连接注销被调用方名称,但Autobahn Python客户端库似乎不允许这样做。

我问错了问题。Crossbar.io服务器应检测客户端何时断开连接,并自动注销属于该断开连接会话的被叫方(根据Twitter上的Tobias Oberstien:)。这不是高速公路客户的责任

我的问题是Crossbar.io服务器没有检测到客户端网络连接突然断开时发生的客户端断开连接,因此没有进行清理


这种行为仅仅是由于Crossbar服务器的配置造成的。此后,我一直遵循Crossbar站点()上记录的“生产设置”示例。我现在有了我想要的行为,断开的连接留下的会话会被自动检测和清理。

您能分享您的代码吗?