pet*_*nts 19 sockets connection android p2p
我正在开始一个小型项目,基本上是经典战舰游戏的多人游戏(与超过两个玩家一样).
在我深入编码之前,我试图解决的一个问题是多个玩家之间的沟通问题.当前的可能性是使用中央HTTP服务器作为通信的中央集线器(与Android C2DM API结合以允许从HTTP服务器到设备的推送通信).这似乎是一个很好的解决方案,因为从理论上讲,只要您可以访问Internet,它就应该可以正常工作,无论您是否支持NAT.
然而,所提出的解决方案具有存在单个故障点/额外负载(网络服务器)的缺点.所以我想尝试其他选择.我想过在客户端之间使用套接字建立直接连接(网络服务器只是用作初始会合点),但是这只有在所有设备都在同一网络中时才能正常工作.考虑到今天我们几乎总是落后于路由器的NAT,我怎样才能实现直接通信?我一直在阅读有关打孔的内容,但我找不到任何有良好记录的好文库(包含很好的使用示例),并且肯定适用于Android.大多数(如果不是全部)打孔技术(STUN,ICE等等)广泛可用只能与UDP一起使用,这对于音频/视频以及可能丢失一些消息的实时多人游戏来说很好,但对于多人转向基于游戏,保证每个回合数据的传递非常重要(这是不可能直接用UDP进行的).
那么任何想法如何在NAT后面的Android设备之间实现可靠的打孔(最好通过TCP)?它不必在100%的情况下工作(可能不支持某些陌生人的NAT),但如果它适用于大多数情况则会很好.
通过smack over gtalk使用xmpp.您不必担心服务器和单点故障.让谷歌担心!我写了俄罗斯方块,使用gtalk作为通信层来对抗两个玩家.http://code.google.com/p/tetrads-drop-lite/如果您想要更多玩家,可以尝试MUC.
| 归档时间: |
|
| 查看次数: |
15918 次 |
| 最近记录: |