我正在使用Twisted Python服務器封裝Minecraft服務器應用程序,該服務器具有用於獲取當前連接播放器列表的RESTful API。 Twisted應用程序通過reactor.spawnProcess()啓動Minecraft服務器,然後通過ProcessTransport進行通信,寫入標準輸入。讀取標準輸出和標準輸入由一個單獨的protocol.ProcessProtocol類處理。扭曲的Python + spawnProcess。從命令獲取輸出
鑑於我希望得到一個非常具體的命令(以下簡稱「名單」命令,該命令將返回類似這樣的結果:
[INFO] Connected players: blah, blah2
如果我能夠挑選出在標準輸出球員名單線,請問如何將這個提交到RESTful API視圖的最佳方式是要求提供連接球員列表?請記住,我的stdout reader無法直接與function that is trying to get the list of connected players通信。我可以解析stdout並確定要交付的球員列表,我只是不確定如何將其發送到Web API視圖,該視圖將連接的播放列表發送到客戶端,因爲視圖和標準輸出讀取器沒有直接聯繫。
我有一些可行的辦法來解決這個問題,但是如果任何人有想法,可以這樣做「正確的方式」。
感謝您的幫助,我覺得有一些更好的方法來做到這一點。我的大腦仍然沒有完全包裹我們Twisted的回調,但這看起來很正確。 – Greg 2011-05-24 13:40:00
哦,什麼是自我。等待?在翻閱文檔時沒有看到這一點。 – Greg 2011-05-24 13:41:50
看起來像一個列表:)我遺漏了它的初始化 - 它是這個例子的一部分,但不是由Twisted或'ProcessProtocol'提供的。 – 2011-05-24 17:34:35