2

我正在寻找一些方向来学习如何从 Java 托管其他语言。到目前为止,我已经找到了 JSR 223 和 Bean Scripting Framework 之类的东西,但我的知识和经验不足以告诉我这些是否是合适的起点。

该应用程序是一个泥浆,其中游戏系统作为连接(通过套接字)到基于 JVM 的服务器的服务运行。

理想情况下,我希望我的泥浆能够处理所有网络,因此我正在考虑编写一个小型网络模块,它可以从任何语言或至少一些流行语言加载代码。当有人想编写游戏模块时,他们会使用我的网络模块并将其与他们的代码打包在一起。在启动时,我的网络模块加载他们的代码并与我的服务器对话。

例如,一个游戏开发者在 Lua 中编写了一个战斗程序。我希望连接到我的服务器的网络程序通过“加载”它(以某种方式)来“托管”这个 Lua 代码。我不希望将 Lua 嵌入到我的 Java 程序中(Jython、JRuby 等也是如此),因为我寻求更通用的解决方案,但是我理解这是否不切实际。

我正在使用这种方法,因此开发人员可以用任何语言编写游戏系统。

我也考虑过诸如 Bridge RPC 之类的服务,但我更喜欢不依赖于特定供应商的解决方案。

4

2 回答 2

1

除非您希望您的有线协议非常复杂,否则我建议您:

  1. 大量记录有线协议
  2. 提供一个简单的开源、基于 java 的客户端参考库

因此,客户端开发人员既可以在 Java 程序中使用您的库,也可以用另一种语言编写自己的版本。拥有文档化的协议和参考库应该足以让任何开发人员用他们选择的语言重新实现。

于 2012-07-14T21:06:36.990 回答
0

一些选项:

  • 为了获得良好的性能,我建议使用二进制格式:类似于 Google 的Protocol Buffers
  • 对于一般的灵活性和许多不同的语言实现可能值得看看Apache Thrift
  • 实现自己的 REST 或基于文本的服务也是可行的。您可能会考虑使用 JSON 作为消息格式。
于 2012-07-14T21:16:58.460 回答