编辑:答案是使用 firebase 实时数据库。
我为下一个人写了一个库。
https://github.com/flipflopapp/turnbased-games-with-firebase
-- 问题--
我正在实现双人国际象棋游戏 (www.halfchess.com) 并正在考虑使用 firebase 消息传递(而不是使用套接字来创建房间和两人比赛)。该游戏将涉及在两到三分钟内在两台设备(可以是 Android 或 iOS)之间发送 60-100 个国际象棋 Action 作为消息。我的 nodejs 服务器将具有支持设备到设备消息传递的代码(从一个播放器接收并发送给其他播放器)。
我无法使用 Google 游戏服务,因为我的应用程序中没有实现 google 登录(我只打算保留 facebook 登录)。使用 firebase 的优势(与套接字相比)是我将不得不编写更少的代码(重新连接等)并且它会解决可伸缩性问题。
我的问题是:-
(1) 用户在两台iOS设备(而不是android设备)上对战会不会有问题? (例如更高的延迟)
(2) 如果用户在物理上改变位置并且包含国际象棋移动的消息未送达,何时重试?
(3) 对于快速的国际象棋,延迟是否可控?这相当于正常聊天速度的 8-10 倍。
虽然我阅读了更多有关该主题的内容,但也许已经尝试过的人可以发表评论。
最佳答案
Firebase Cloud Messaging 不适用于某种用途,除了无法保证交付时间(来自 2013 的一些研究 - 2014 显示每条消息平均超过 1 秒),FCM 可能会在此类用途中暗示 throttling案例。
另见 SO post
关于firebase-realtime-database - 使用 Firebase 的两人象棋游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41837202/