我有一个使用 LibGDX Engine 创建的 2D 游戏. 该游戏是为桌面创建的。
还为游戏开发了服务器。
我使用 Netty.io networking library在服务器和客户端之间进行通信。
一切正常,但我想让没有安装 Java 的用户也能玩,我找到的解决方案是使用 LibGDX 提供的 HTML5 运行程序。
但是如果我将其转换为 HTML5,我必须使用 websockets 为 HTML5 客户端重新做网络部分,并在服务器中添加对 websocket 连接的支持,对吗?
还有其他解决办法吗?
最佳答案
在您链接的 Netty.io 网站上,我看到了对 Websockets 的支持,但没有 JS 实现。所以答案取决于 Netty.io 是否有可用的 JS 实现(比如 Socket.io 有 Java 和 JS 的客户端)。
如果 Netty 同时具有 Java 和 JS 的实现,您必须将您使用的所有方法提取到您在核心项目中调用的接口(interface)。 Android 和桌面项目的接口(interface)实现将是您当前使用的 Java 实现,而对于 GWT 后端,您将使用 JSNI 调用 JS 实现。
例如,您可以查看我的使用游戏服务的 Github 项目:Google Play 游戏实现可用于 HTML、桌面和 Android,所有实现都针对相同的接口(interface),HTML 实现使用 JSNI 调用 Google 的 JS 库: https://github.com/MrStahlfelge/gdx-gamesvcs/blob/master/html-gpgs/src/de/golfgl/gdxgamesvcs/GpgsClient.java
如果没有可用的 Netty.io JS 实现,您将不得不自己做或切换到另一个网络层。
关于java - LibGDX - HTML5 runner,带网络?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52152192/