gpt4 book ai didi

java - 用于基于 LAN 的多用户游戏的 XMPP

转载 作者:行者123 更新时间:2023-12-01 05:43:38 27 4
gpt4 key购买 nike

我的问题是关于XMPP协议(protocol)的;这被认为是用于实时场景,

是多用户游戏中通常的实时吗?,

有人可以告诉吗

它如何或是否适合实时多用户游戏的环境,例如传统的 TCP 和 UDP 协议(protocol)或

这是完全不同的野兽吗,

它适合在什么情况下玩游戏?以及什么类型的游戏,应该都支持得很好

最佳答案

XMPP 协议(protocol)与游戏服务器没有任何关系。 XMPP 是一种去中心化的聊天协议(protocol),每个人都可以在其中设置自己的服务器。当然,您可以使用从该聊天系统解析的消息来同步实时多用户游戏,但这会产生大量开销(因为 XMPP 使用通常未编码的长 XML 消息*。

在游戏中进行通信的更好/更常用的方法是构建自己的二进制格式来存储游戏状态更改,并使用 UDP 套接字将其发送到服务器(请小心为消息添加时间戳,以便您可以迟到消息,也将某些消息可能会被丢弃的情况纳入您的设计中)。服务器应该检查状态更改是否有效,然后将其重新分发给其他客户端。这为您提供了一个低开销协议(protocol),但 UDP 不保证排序和传送,因此对于关键但不频繁的消息,您应该使用第二个套接字通过 TCP 发送消息(例如聊天消息)。

现在这可能看起来工作量很大,但是有相当多的代码示例,甚至还有 JAVA 和其他语言的包,为您设置了此服务器/客户端架构,因此您只需发送消息.

*有一些 XMPP 扩展可以压缩/编码消息

关于java - 用于基于 LAN 的多用户游戏的 XMPP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6474548/

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