5

我希望使用 RPyC 为硬件板提供 API 作为服务。该板一次只能满足单个用户的需求。有什么办法可以让 RPyC 强制一次只有一个用户可以访问?

4

1 回答 1

2

我不确定这是否可行(或运行良好),但您可以尝试在循环中启动OneShotServer,因此在任何给定时刻只提供一个连接。当连接关闭时,服务器终止,您为下一个客户端启动另一个。

就像是:

is_aborting = False
while not is_aborting:
    server = OneShotServer(myservice, *args, **kwargs)
    # serve the next client:
    server.start()
    # done serving the client

如果这不起作用,最好的办法是继承ThreadedServer,并覆盖_accept_method方法以跟踪是否已经打开了连接,如果有则返回错误。

于 2016-01-18T20:29:09.933 回答