2013-06-25 180 views
0

我有一個網站,我在rails中運行。這是爲了測試和學習沒有什麼特別的或者會有很多流量。我正在爲朋友運行一個minecraft服務器,並且想要創建一個rails應用程序來與它交互。因爲。我的問題是什麼是最好的方式來做到這一點。一旦你啓動了Minecraft服務器,它會運行直到你殺死它。所有日誌信息都會在您播放時顯示在服務器屏幕上。你也可以在服務器上輸入命令來控制世界。所以我想要的是一種記錄服務器發佈的新信息並登錄數據庫以及發送新命令的方法。如果這很難,那我只是在尋找經驗。用Ruby on Rails控制Minecraft服務器

+0

它聽起來像你只是想ssh到你的服務器並運行'$ rails c'來調出rails控制檯。 – sybohy

回答

1

Minecraft服務器在stdoutstderr上都有輸出。它也需要從stdin輸入。有關標準流的更多信息,請閱讀wikipedia文章。

你說的這個項目相當先進,需要知道Unix進程和線程。

通常情況下,你的程序將需要:

  • stdoutstderrstdin溪流,你的程序有超過
  • fork

句柄然後在子進程中創建流:

  • 重定向stdoutstdinstderr到創建的流
  • exec的的Minecraft服務器

在父:

  • 啓動監聽的Minecraft服務器stdoutstderr
  • 啓動一個線程一個傾聽stdin並且可以與Minecraft服務器交互的線程
  • 可選,所有的通信的的Minecraft服務器應該是它自己的線程

內完成。如果你剛開始接觸的Ruby/Rails或提到了這一點可以恐嚇其他技術。幾年前,我寫了Tartar,這是一個Rails應用程序,基本實現了您要做的事情。我建議看看,也許它可以幫助你開始。我會從minecraft:start rake任務開始。請注意,這是2年前的事情,它可能不再與Minecraft服務器兼容。

注意:這不適用於Windows。

+0

這是非常完美的答案。是的,這是令人恐懼的,但我將如何學習。再次只是我正在尋找感謝的答案。 – Brandon