【发布时间】:2012-03-30 04:58:30
【问题描述】:
我正在尝试通过 XMPP 开发一款回合制游戏。 (我为多平台游戏找到的唯一解决方案)。我可以毫无问题地发送消息。如果其他用户不在线,则服务器 (OpenFire) 将其保存以供以后传送。
当设备更改网络(从 3g 更改为 WiFi,更改 3g IP...)或设备丢失网络(关闭 3g、wifi 或丢失连接)时,问题就出现了。服务器认为设备在线并发送消息,但它(显然)从未到达,因此数据包丢失。
我知道一种解决方案。在我的游戏协议上实现 ACK,但我不太喜欢这个想法。你还有什么建议吗?我认为这是一个服务器问题。你知道另一个服务器女巫实现 TCP 或 ACK 吗?
谢谢!!
编辑:我这样做:将设备连接到服务器。我关闭了设备的 3G 和 WiFi 连接。 Android 和服务器仍然认为连接是有效的。
http://issues.igniterealtime.org/browse/SMACK-331
PD:我要求为他们的多人游戏 API openfeint,但他们没有答应我...
【问题讨论】:
-
哦。我参与了。你可以开发这个吗?
-
嗨 LeiNaD_87 你找到解决方案了吗?谢谢。
-
不,我没有。我也停止研究这个问题了。
-
通过执行 ping 服务器到客户端服务器能够在 10 秒后断开连接,如果可以提供 ping,则将所有消息放入队列中,这是一个可能的解决方案。