首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pysyft客户端和服务器

Pysyft客户端和服务器
EN

Stack Overflow用户
提问于 2020-03-26 11:17:03
回答 1查看 378关注 0票数 1

这个问题涉及到我使用pysyft库进行联合学习的项目,但是那些了解websockets知识的项目也可以提供帮助,因为pysyft使用websockets进行服务器和客户端交互。

首先,我有一个关于服务器和客户端交互的问题。我已经创建了一个仪表板来启动一个pysyft服务器和一个连接到上述服务器的pysyft客户机。但是,我有一个场景,希望客户机不时地与服务器断开连接(手动断开连接),以便执行模型参数的更改。

我的解决方案是在pysyft websocketClientWorker上执行一个close(),它调用websocket对象上的关闭()函数。这样做,我想,将关闭客户端和服务器之间的连接。在对模型参数做了任何更改之后。我将再次创建pysyft websocketClientWorker对象,并再次执行模型培训。但是,我面临的问题是:websocket._exceptions.WebSocketConnectionClosedException:套接字已经关闭。在数据服务器的迭代过程中,将抛出此异常(尽管与服务器的连接成功)。

也许有更好的方法来处理这个场景,或者我缺少对websockets的基本理解。任何帮助都将不胜感激。谢谢您:)

EN

回答 1

Stack Overflow用户

发布于 2020-03-27 11:25:36

经过几天对pysyft图书馆的彻底检查,我终于找到了解决问题的办法。结果发现,Websocket连接和重新连接没有问题。显然,websocketclient (baseworker)的超类包含一个工作器注册中心,当auto_add变量设置为True时,它缓存websocketclient对象。此注册表由websocketclient ID索引,因此,如果ID相同,websocketclient对象的重新创建将不会在注册表中被替换。因此,这解释了“套接字已经关闭”的问题,因为它引用的是我关闭的之前的websocketclient连接。解决方案是在关闭websocketclient对象连接之前简单地调用websocketclient对象的remove_worker_from_local_worker_registry()方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60866002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档