我正在构建需要用户之间实时同步的游戏,目前我使用tcp没有延迟,并且速度不够快。实时游戏的对等vs服务器客户端
游戏支持15个并发用户,如果有任何要发送的内容,服务器每20毫秒发送一次数据给用户,发送的数据最多为400字节,其他用户发送30字节,用户每50毫秒发送一次数据给服务器。
想着解决方案时,我想为什么不向服务器发送每个用户连接数据,他会将它们发送回“其他”连接数据,而游戏运行时每个用户都将直接发送给所有其他用户他当前的信息使用udp。
第二种方法是保持当前的服务器客户端方式和TCP改变到UDP
会是什么速度?并且它会与当前的tcp客户端服务器速度有什么不同?
这个问题太宽泛无法回答。您可能认为通过IP网络双方之间的直接通信不应该比通过中介进行通信要慢,但不同的消息路由和本地网络条件确实可能使直接通信有时会变慢。还要考虑到15个玩家都需要直接相互沟通,每个人需要管理14个同时连接,并且您可能还需要某种同步信号。 –
注意NAT!如果你发送UDP,你需要查看[hole punching](https://en.wikipedia.org/wiki/UDP_hole_punching) –