python rpyc 2服务器/客户端消息交换所需的连接?

时间:2018-10-24 13:39:55

标签: python rpyc

在我的方案中,我有一个服务器任务(控制伺服器)和一个客户端任务(伺服器位置的GUI)。

在服务器上,我有一个serverListener类,它以这种方式启动

class serverListener(rpyc.Service):
... (my exposed methods to control the servos)

t = ThreadedServer(serverListener, port=20010)
t.start()

在客户端上,我与服务器建立连接:

requestConn = rpyc.connect(serverIp, 20010)

在服务器端,可以运行多个伺服器,并根据自己的时间向gui发送更新。

要完成这项工作,我的结论是我需要另一个连接。 因此客户端具有自己的侦听器:

class clientListener(rpyc.Service):
... (my exposed methods for the servo update information)

通过客户端的端口实例化:

t = ThreadedServer(clientListener, port=20011)
t.start()

当客户端可以打开其与服务器的连接时,它将调用服务器上的公开方法,发送其自己的IP和端口。然后,服务器打开另一个从服务器到客户端的连接。

listenerConn = rpyc.connect(clientIp, clientPort)

这是我当前的设置,目前为止可以使用。但是,维护这两个连接很难看,尤其是在服务器或客户端重新启动时。连接on_disconnect仅在连接的接收方触发,我必须关闭发送方,否则在重新连接时会引发EOF错误。

我已经在rpyc文档中阅读到,连接应该双向运行-但我不知道如何在客户端设置侦听器。

0 个答案:

没有答案