LibGDX - 将跨平台客户端连接到服务器(HTML5/GWT、iOS、Android 和桌面)
Posted
技术标签:
【中文标题】LibGDX - 将跨平台客户端连接到服务器(HTML5/GWT、iOS、Android 和桌面)【英文标题】:LibGDX - Connecting cross-platform clients to a server (HTML5/GWT, iOS, Android and Desktop) 【发布时间】:2016-02-10 13:11:44 【问题描述】:在周末,我为我正在制作的游戏建立了所有网络。我以本教程为基础:GamesFromScratch.com Basic LibGDX Networking。它说它只支持 TCP,但我对此表示满意,因为我可以弄清楚一些事情,并且网上有很多关于如何在没有 UDP 的情况下制作实时游戏的资料。完成后,我在桌面、android 和 html5/GWT 上对其进行了测试。桌面和安卓工作,但 GWT 没有。我做了一些研究,发现 Gdx.net 不支持 GWT,这篇文章没有警告我:/ 基本上现在我正在尝试找到一个适用于所有 libgdx 平台的替代解决方案。
我研究了带有 Socket IO 的 Websockets。以下是我为 Client 和 Server 找到的 Java 库。服务器库表示它与客户端运行良好,这令人放心。这似乎是一个很好的解决方案,但我有几个问题:
- 客户端库可以在所有平台上运行吗? 似乎它可以在 android 和桌面上运行,因为它们不必转换为另一种语言,但 GWT 和 ios 呢?而且不仅可以工作,还可以使用服务器库连接到服务器。
- 使用 websockets 时有什么需要注意的吗?
谢谢。
编辑:我做了更多研究,发现Jetty。我环顾四周,它似乎与 GWT 兼容,我只需要知道它是否也兼容 iOS。我也可以使用 Jetty 作为我的服务器 api 吗?
【问题讨论】:
【参考方案1】:我做到了。在过去的几天里,我做了很多研究,最后我在 ***.com 上找到了 this 帖子,它告诉我 2 个很棒的库,其中一个我可以与支持 GWT 的客户端一起使用。
效果很好,唯一的问题是我必须为客户端使用 2 个 WebSocket 库,一个在 html 上,另一个用于所有其他平台,但没关系,至少它可以工作。
库是:Client 和 Server。
【讨论】:
从那以后我一直在使用 gdx-websockets!它将 2 个 websocket 客户端合二为一。我实际上正在研究它,试图实现 SSL 支持。 github.com/czyzby/gdx-lml/tree/master/websocket【参考方案2】:您可以使用Kryonet 为 PC、Android 和 iOS 提供网络(未测试)。在这个库上,您可以构建服务器端或客户端应用程序。 在 GWT 中你有 WebSocket,你必须使用其他库来连接服务器。 启动游戏时,可以为 GWT 注入正确的实现客户端,例如:gwt-websockets 和其他平台的 kryonet。
接下来,你必须自己改变kryonet默认的序列化实现,支持json。在my project 中,我使用 LibGDX json 序列化。
目前,我不支持 gwt,但我会在近功能中进行处理。
在我看来,Jetty 对客户来说太重了,也不是那么简单。但是在 Spring 中,您可以轻松地创建基于 REST 或 http 通信的服务器服务。
【讨论】:
但是服务器必须同时处理 websockets 和 kryonet。我已经使用 Kryonet 一年多了,我想找到一个支持 GWT 的解决方案。不过感谢您的回答。以上是关于LibGDX - 将跨平台客户端连接到服务器(HTML5/GWT、iOS、Android 和桌面)的主要内容,如果未能解决你的问题,请参考以下文章