gpt4 book ai didi

java - HTML5 LibGDX/GWT中如何实现网络通信

转载 作者:行者123 更新时间:2023-11-28 01:29:34 27 4
gpt4 key购买 nike

目标:实现一个可以从 LibGDX/GWT HTML5/JavaScript 部署与服务器通信的基本客户端。这是一个基于浏览器的多人在线在线游戏的副项目。

我所知道的和所做的:我所有的网络经验都来自 KryoNet(创建一个服务器对象,启动服务器,监听请求,大功告成)——这个(或在 LibGDX/GWT HTML5 部署中实现类似的)架构?

经过数小时的研究,我对这些人人都说要使用的称为“WebSockets”的神奇事物一无所知。我发现的唯一“WebSockets”在 Gdx.net 中,它们“未实现”。

enter image description here

以下代码(在 Libgdxclient-core 中执行并从 Libgdxclient-html 编译而来)

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Net.Protocol;
import com.badlogic.gdx.net.Socket;


import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Net.Protocol;
import com.badlogic.gdx.net.Socket;


public class Client {
private Socket socket;

public Client() {
Gdx.app.log("create()", "connecting.....");
this.socket = Gdx.net.newClientSocket(Protocol.TCP, "127.168.1.1", 54555, null);
}
}

产生这个输出:

enter image description here

我遇到了几个关于 WebSocket 实现的 GitHub 存储库,但是我很困惑其中哪些(如果有的话)实际上是 LibGDX/GWT 兼容的,并且真的可以帮助我了解我需要阅读的内容继续实现我的目标(我正在寻找纯 Java 解决方案)。

最佳答案

您可能已经解决了您的问题(或选择了其他解决方案),但它仍然可能对某些人有用。

首先:Net 实现中的套接字是 TCP 套接字,浏览器不支持它 - 因此是空实现。即使您使用第三方 GWT 网络套接字实现,它仍然与 LibGDX TCP 服务器套接字不兼容。

但是,您可以选择众多 Web 套接字服务器实现中的一种,以及用于“标准”LibGDX 平台的基于 Java 的 Web 套接字客户端解决方案和用于 Web 的 GWT Web 套接字。 LibGDX 应用程序的常见选择似乎是:

  • Java WebSockets - 服务器和客户端实现。客户可以针对大多数常规 LibGDX 平台。
  • gwt-websockets - “ native ”浏览器网络套接字的非常简单的 GWT 包装器。

这些是我推荐研究的一些额外的库:

  • nv-websocket-client - Android 兼容的网络套接字客户端。
  • gwt-websockets来自 realityforge - 包含更多功能的更复杂的 GWT 网络套接字包装器。
  • Vert.x - 一个出色的服务器框架,具有 Web 套接字支持。
  • gdx-websocket - 用于 LibGDX 应用程序的通用网络套接字 API。在内部使用 nv-websocket-client 和自定义 GWT 包装器来定位大多数 LibGDX 平台。免责声明:我是作者。

关于java - HTML5 LibGDX/GWT中如何实现网络通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30800088/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com