2012-06-16 42 views
0

我正在尝试创建一个简单的DrawSomething绘图游戏。这里的问题不是游戏本身,而是沟通。 如何将坐标分配给其他智能手机(android + iOS)客户端?2G/3G智能手机的实时通信

2G/3G: - 通常不支持点对点连接。 -UDP数据包被阻塞 - 碎片连接,即。客户端一直在移动并切换基站,因此无法在客户端与服务器或客户端与客户端之间保持单一连接。

显然我们可以定期使用POLLING。中央服务器将是必需的,但轮询对于实时通信而言是低效的。有点类似于实时性,你将不得不每隔100毫秒轮询一次,使用100个客户端可能会使服务器超载。

所以问题是我们如何为移动网络上的智能手机进行实时通信?

回答

0

那么你想要做的是将所有的信息存储在服务器上,而不是做任何Peer2Peer通信。当信息保存在服务器上时(交易完成),服务器向另一个玩家发送c2dm消息,通知他们新的转向。如果C2DM不足,您可以使用XMPP实现您自己的p2p网络,这是C2DM所基于的,但我不建议这样做,C2DM应该是您需要的。

+0

你可能是对的。我看了一下DrawSomethings权限列表,发现这个很有趣:com.google.android.c2dm.permission – RedHotScalability

+0

对,他们刚刚添加了推送消息(C2DM)。他们没有通知之前。像Words With Friends这样的应用程序使用定期轮询(坏),推送消息传递肯定是要走的路。 – Jug6ernaut