我正在尝试创建一个简单的绘图游戏,例如DrawSomething。这里的问题不是游戏本身,而是沟通。如何将坐标分发到其他智能手机(安卓+ iOS)客户端?
2G/3G:-一般不支持点对点连接。-UDP 数据包被阻止-碎片连接,即。客户端一直在移动并切换蜂窝站,因此无法在客户端和服务器或客户端和客户端之间保持单个连接。
显然,我们可以定期使用轮询。需要一个中央服务器,但轮询对于实时通信效率低下。为了有点类似于实时性,您必须每 100 毫秒轮询一次,对于 100 个客户端,这可能会使服务器过载。
那么问题来了,我们如何在移动网络上为智能手机进行实时通信?
你想做的是将所有信息存储在服务器上,根本不做任何Peer2Peer通信。当信息保存在服务器上(回合完成)时,让服务器向其他玩家发送c2dm消息,通知他们新的回合。如果C2DM还不够,你可以使用XMPP实现自己的p2p网络,这是C2DM的基础,但我不建议这样做,C2DM应该是你需要的。