问题标签 [kryonet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 为什么 Kryonet 发送 Object 占用太多网络空间?
我正在关注一个简单的示例官方 Kryonet 页面:
https://github.com/EsotericSoftware/kryonet
在服务器中,我只发送一个空类对象:
但是当我使用 Wireshark 时,我担心对象的大小约为 44 字节。这确实会损害网络带宽,因为我正在尝试使用 Kryonet 创建服务器-客户端多人游戏。我的设置有问题还是 Kryonet 不是针对游戏的。
java - Android Kryonet 客户端无法连接到我的 PC 服务器?
我在eclipse中做了一个基本的服务器:
然后我在 android studio 中创建了我的客户端。我正确安装了库。(根据google)我将Kryonet jar放入libs文件夹,然后重建项目。然后我可以使用 Kryonet 课程。这是我的客户代码:
它与我在普通 Java 客户端中使用的代码完全相同,只是现在它直接从我的 android 设备运行。我收到此错误:
即使我将其全部转发,它也无法连接到我的 IP。为什么连接不上?我已在线阅读以将其添加到我的清单文件中:
所以我做了:
仍然完全无济于事。我究竟做错了什么?(PS 我已经尝试过使用我的网络 IP 和公共 IP。我不知道我做错了什么,使用普通的 Java 程序一切正常,但使用 android 应用程序会出错。)
java - 安卓工作室 | Libgdx | 添加 Kryonet 库 - NoClassDefFoundError
我目前正在开发一款 Android 游戏,并希望实现多人游戏。所以我想使用 Kryonet:
- 我下载了库(https://github.com/EsotericSoftware/kryonet/releases)
- 在我的核心模块中创建了一个 libs 文件夹
- 将 kryonet-2.21-all.jar 复制到其中
并将其作为模块添加到 build.gradle 中:
/li>
在 Android Studio 中它似乎可以工作,我可以访问所有导入等,但是在我的设备上运行应用程序时..它崩溃了
我在 cmd 和其他东西中尝试了 /gradlew clean ,但没有任何帮助。请给我一个提示,我已经坚持了几个小时了。谢谢!
java - 如何构建 kryonet java 库?
我正在尝试将 kryonet 网络库用于 Android 应用程序,我想修改它的一些行为以满足我的需要。
我已经在我的机器上克隆了适当的git 存储库,但没有找到任何关于如何构建它的说明。
你们中有人以前从源代码构建过 kryonet 吗?如果没有,也许您可以根据上面链接中的存储库为我指出正确的方向?
java - 使用 Kryonet 的 Java 游戏网络:准系统数据包传输
我正在使用 Opengl 和 Jbox2d 用 Java 编写实时 2d 游戏。
我想开始编写网络组件。
虽然它使用 box2d,但我的游戏非常小,我想使用 Kryonet 库创建一个基本架构。
该程序本身就是象棋一样的“比赛游戏”。我能想到的最合乎逻辑的系统是拥有存储所有玩家数据的专用服务器。
PlayerA 和 PlayerB 将连接到专用服务器,这将促进他们计算机之间的 TCP 链接。
比赛结束后,双方玩家会将结果数据传回专用服务器,该服务器将进行身份验证,然后保存各自的玩家数据。
对于那些熟悉的人来说,暗黑破坏神2 实现了类似的设置。
我希望这个 TCP 连接简单地将形状坐标矢量数据从主机(比如说 playerA)发送到客户端(播放器 B),然后客户端将自行渲染。
然后我希望客户端将鼠标/键盘数据发送回主机。所有的处理都将在主机的计算机上运行。
我的第一个问题:这个网络逻辑有什么缺陷吗?
我的第二个问题:如何使用 Kryonet 实现准系统服务器/客户端数据包传输(如所述)?
注意:我使用不同的库在 C++ 中完成了这种确切类型的数据包传输。我为 Kryonet 找到的文档/教程很糟糕。建议另一个具有良好支持的库是一个可以接受的答案。
java - Kryonet:最好的数据结构?
我正在用 Java 编写一个图形化的在线程序,并使用 Kryonet 库来处理网络。
我相信这个库要求数据包是类的实例。我不确定这一点,但是没有找到任何其他建议的文件。
我对网络和内存效率略知一二,但对这个库不是很了解,因此不确定标准方法是否有效。
我对高效数据结构的最佳猜测是将我的 Vec2 对象分解为分别代表 X 和 Y 属性的浮点数。从逻辑上讲,将这些值存储在单个浮点数组中然后将其作为数据包传输应该是有效的。
我对内存管理不太熟悉,因为它与面向对象编程有关。由于这个“数据包”在技术上是一个实例,我猜这会使“内存安排”更类似于“C 结构”。此外,我不知道 Kryonet 是如何处理数据的,所以这都是非常理论化的。
我的问题是:将所有数据塞入单个浮点数组是否比将所有属性安排为类的单个成员更有效?或者也许是一组数组,而不仅仅是一个?
提前致谢。
java - Kryonet -- 我如何在我的班级中注册课程?
我有以下课程:
我这样注册它:
这在尝试 serialize 之前一直运行良好QueryResults
,因为它包含一个容器,在这种情况下是 a HashSet
(我们也尝试了 an ArrayList
,结果相同)。
在填充并最终序列化此类以发送回调用方的端点上,我得到以下输出:
如果我明确调用Registrar.RegisterClass(this, HashSet.class);
,一切都会顺利进行。但是,一旦我们开始使用多种类型的容器实现更高级的类,这可能会很烦人。
难道我做错了什么?
java - 连接 Socket.IO 和 Kryonet,已连接,但在 TCP 注册期间超时
我有一个 nodeJS 服务器设置来接受套接字连接,这似乎适用于我的 Web 应用程序。
现在我正在尝试设置同一台服务器以接受来自 Android、iOS(尽管 RoboVM)和桌面上的 Kryonet 库的套接字连接。
节点设置:
游戏服务器.js
live_api.js
然后在我的应用程序中,我得到了:
在客户端连接时出现以下错误:
java - 比较传输对象的价值
我正在尝试制作一个简单的 irc 服务器和客户端,并且我正在尝试找到一种方法让服务器对发送给它的某些消息做出不同的响应。我正在使用 kryonet api 进行联网。这是我的听众:
我创建了一个客户端程序,它在连接时发送消息“Hello”。但是,服务器无法识别 msg.text 实际上等于“Hello”,或者发生了其他异常情况。没有产生错误,但服务器忽略了条件语句。我还验证了客户端发送的字符串是它应该是什么。