周末我为我正在制作的游戏设置了所有网络。我的基础是本教程:GamesFromScratch.com Basic LibGDX Networking。它说它只支持TCP,但我没关系,因为我可以想出一些东西,网上有很多关于如何制作没有UDP的实时游戏的资料。完成后,我在桌面,android和HTML5 / GWT上测试了它。桌面和Android工作,但GWT没有。我做了一些研究,发现Gdx.net不支持GWT,文章没有警告我:/基本上我现在正试图找到一个可以与所有libgdx平台一起使用的替代解决方案。
我查看了带有Socket IO的Websockets。以下是我为Client和Server找到的Java库。服务器库说它适用于令人放心的客户端。这似乎是一个很好的解决方案,但我有几个问题:
- 客户端库是否可以在所有平台上运行?它似乎可以在Android和桌面上运行,因为它们不必转换为另一种语言,但GWT和iOS呢?不仅可以工作,还可以使用服务器库连接到服务器。
- 使用websockets时需要注意什么?
感谢。
编辑:我做了一点研究,发现Jetty。我环顾四周似乎与GWT兼容,我只需要知道它是否也兼容iOS。我可以使用Jetty作为我的服务器api吗?
答案 0 :(得分:2)
我做到了。我在过去的几天里做了很多研究,最后在stackoverflow.com上发现了this帖子,它告诉了我两个很棒的库,包括一个我可以用来支持GWT的客户端。
它工作得很好,唯一的事情是我必须为客户端使用2个WebSocket库,一个用于html而另一个用于所有其他平台但是没关系,至少它可以工作。
答案 1 :(得分:0)
您可以使用Kryonet为PC,Android和iOS(未经测试)提供网络。在此库上,您可以构建服务器端或客户端应用程序。 在GWT中,您有WebSocket,您必须使用其他库来连接服务器。 当你开始游戏时,你可以为GWT注入正确的实现客户端,例如:gwt-websockets和kryonet用于其他平台。
接下来,您必须自己更改kryonet默认序列化实现,支持json。在my project我使用LibGDX json序列化。
目前,我没有对gwt的支持,但我会在附近的功能上进行处理。
Jetty在我看来对客户来说太沉重了,并不是那么简单。但是女巫Spring,你可以轻松创建基于REST或http通信的服务器服务。