Java jar应用程序和java web应用程序的通信和实现

标签 java jar rmi rpc war

我有一个用 Java 编写的多人游戏服务器应用程序,当玩家客户端通过套接字加入多人游戏时,该应用程序会连接到玩家客户端。服务器应用程序(在 JVM 中运行的 JAR)正在监听端口(例如 9999)以获取来自客户端的传入连接。

我想添加一个网站来监控整个项目,其中包含从正在运行的游戏服务器获取的信息。一种方法是打开从站点到游戏服务器 (Java) 的套接字(例如 PHP 套接字),并实现自定义协议(protocol)以从服务器获取数据。但该方法非常耗时,因为我需要添加对要传递到监控网站的每种数据类型的支持。

我在想是否有一种方法可以用 Java 编写站点并通过直接链接与我的游戏服务器进行通信。我认为 RMI 是一个解决方案,因为我的 JAR 和 WAR 都可以通过它进行通信,但是是否有更好的方法可以在同一个 JAR 文件中构建 Web 应用程序和游戏服务器应用程序?这样当我的游戏服务器运行时,Web 应用程序也会运行?

最佳答案

在我看来,这是拥有管理控制台的最快方法。只需将您的服务器转换为 war 应用程序,其中包含带有用于客户端的开放套接字的游戏服务器和管理页面。要启动您的服务器,只需将其放入 tomcat 中即可。

一种不需要自行创建协议(protocol)的更简洁的方法是让您的服务器对您想要管理的所有关键对象使用 mbean。但这需要一些编码。

干杯,斯文

关于Java jar应用程序和java web应用程序的通信和实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5052709/

相关文章:

java - 使用Zxing从手机上存储的图像中解码二维码(在Android手机上)

java - 在Java中使用apache commons vfs2访问后删除zip文件

java - 如何创建一个简单的 JMX 客户端?

java - 如何从Web服务返回自定义对象的数组列表?

java - 如何移动列表条目并同时更新所有条目的索引?

bash - 如何从 bash 替换 war 文件的 list ?

java - 构建自定义 Java 库

java - 查找jar中的所有依赖项

java - 类 java.rmi.registry.Registry 和 java.rmi.Naming 之间的区别

java - 在spring-boot中,是否可以在不成为spring bean的情况下获取属性?