2013-06-25 184 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