LibGDX-将跨平台客户端连接到服务器(HTML5/GWT、iOS、Android和Desktop)



周末,我为我正在制作的一款游戏设置了所有的网络。我是以这个教程为基础的:GamesFromScratch.com Basic LibGDX Networking。它说它只支持TCP,但我对此没意见,因为我能想出一些办法,而且网上有很多关于如何在没有UDP的情况下制作实时游戏的材料。完成后,我在桌面、android和HTML5/GWT上测试了它。桌面和安卓系统可以工作,但GWT没有。我做了一些研究,发现Gdx.net不支持GWT,文章没有警告我:/基本上,现在我正在努力寻找一种适用于所有libgdx平台的替代解决方案。

我研究了使用Socket IO的Websockets。以下是我为客户端和服务器找到的Java库。服务器库表示,它与客户端库配合良好,这让人放心。这似乎是一个很好的解决方案,但我有几个问题:

-客户端库是否适用于所有平台它似乎可以在android和桌面上工作,因为它们不必转换成另一种语言,但GWT和iOS呢?而且不仅可以工作,还可以使用服务器库连接到服务器。

-在使用websocket时,有什么需要注意的吗

谢谢。

编辑:我做了更多的研究,找到了Jetty。我环顾四周,它似乎与GWT兼容,我只需要知道它是否也与iOS兼容。我可以使用Jetty作为我的服务器api吗?

我做到了。在过去的几天里,我做了很多研究,终于在stackoverflow.com上找到了这篇文章,告诉我大约有两个很棒的库,其中一个可以与支持GWT的客户端一起使用。

它工作得很好,唯一的问题是我必须为客户端使用两个WebSocket库,一个在html上,另一个在所有其他平台上,但这没关系,至少它能工作。

库包括:客户端和服务器。

您可以使用Kryonet,它为PC、Android和iOS提供网络(未测试)。在此库上,您可以构建服务器端或客户端应用程序。在GWT中,您有WebSocket,并且必须使用其他库来连接服务器。当您开始游戏时,您可以为GWT注入正确的实现客户端。例如:用于其他平台的GWT-websockets和kryonet。

接下来,您必须自己更改kryonet默认的序列化实现,支持json。在我的项目中,我使用LibGDX json序列化。

目前,我还没有对gwt的支持,但我会在不久的功能中对它进行研究。

在我看来,Jetty对客户来说太重了,也不那么简单。但是切换到Spring,您可以轻松地创建基于REST或http通信的服务器服务。

相关内容

  • 没有找到相关文章

最新更新