我正在使用 Twisted Python 服务器包装 Minecraft 服务器应用程序,该服务器具有 RESTful API 用于获取当前连接的玩家列表。Twisted 应用程序通过reactor.spawnProcess()启动 minecraft 服务器,然后通过ProcessTransport进行通信,后者写入标准输入。读取标准输出和标准输入由单独的protocol.ProcessProtocol类处理。
鉴于我想获得一个非常具体的命令的结果('list' 命令,它返回如下内容:
[INFO] Connected players: blah, blah2
如果我能够在标准输出中挑选出玩家列表行,那么将其传递到要求连接玩家列表的 RESTful API 视图的最佳方式是什么?请记住,我的标准输出阅读器无法直接与试图获取已连接玩家列表的函数进行通信。我可以解析标准输出并识别要交付的播放器列表,我只是不确定如何将其交付到将连接的播放器列表发送到客户端的 Web API 视图,因为视图和标准输出读取器不是直接的接触。
我有一些可能的方法来处理这个问题,但如果有人有想法,我宁愿以“正确的方式”做这件事。