IOS回合制游戏-推送通知提醒玩家该轮到他们了



我已经制作了一款IOS多人回合制游戏。我的目标是让一名玩家轮到他们玩,然后向另一名玩家的设备发送推送通知,通知他们该轮到他们玩了。

我已经试用了Urban Airship,并在那里有一个示例应用程序,它能够向所有注册的设备或手动输入的设备广播推送通知。

有可能从我的应用程序中只向其他玩家触发城市飞艇推送通知吗?如果需要,我可以从Firebase数据库中提取对手的设备令牌。

如果这不可能,有人能引导我朝着正确的方向走吗?我做了相当多的研究,我发现的一切都指向Parse,当然它正在关闭。

谢谢。

如果您正在使用Firebase,您可以使用一个很棒的解决方案。有一个很好的服务叫Batch。Batch有助于发送推送通知,它与Firebase配合使用非常好。基本上,当用户登录应用程序时,您可以使用他的Firebase Auth Id将其注册到Batch服务中,现在您可以使用Batch提供的Firebase Auth-Id和REST API在他的设备上发送通知。

它对我来说很好。我有一个脚本来观察我的Firebase数据,并决定是否需要发送任何通知。如果是,它将使用Batch REST API来执行此操作,并立即发送通知。

您可以在此处找到有关如何将Batch与Firebase集成的更多信息:

https://batch.com/parse-replacement-with-firebase

哪种类型的通知以及何时发送取决于您和服务器端脚本。编写这样的服务器,其中包含一些逻辑,可以在需要的地方发送通知。

这更多的是一个一般的想法,因为问题中没有足够的信息来提供具体的答案:

我建议利用Firebase的内置功能,而不是通过推送来解决它。

Firebase事件是即时和实时的,提供了丰富的信息,不需要单独的服务器或主机来处理它们。

快速示例

users
  uid_0
    name: "Picard"
  uid_1
    name: "Riker"

以及游戏&转弯节点

games
  game_id_1701
    players
       uid_0: true
       uid_1: true
    turns
      turn_id_0
        player_id: uid_0
        event: "powered up weapons"
      turn_id_1
        player_id: uid_1
        event: "engaged shields"
      turn_id_2
        player_id: uid_0
        event: "fired photon torpedoes"
      turn_id_3
        player_id: uid_1
        event: "shield impact, shields at 80%"

因此,使用这种结构,玩家登录并可以查询他们所参与的所有游戏,在这种情况下,玩家uid_0和uid_1正在玩游戏#1701

一旦他们确定了自己是哪个游戏的一部分,他们就可以观察到该游戏的转折节点。turns节点将向用户提供到目前为止发生的事情;转弯次数、事件等

然后,任何未来的事件,如uid_0进行turn_id_4并触发相位器时,都会将该事件通知uid_1。

有几十种不同的方法来设置它,例如

completed_turns
  uid_0: true
  uid_1: false

在这个超级简单的例子中,uid_0和uid_1都观察completed_turns节点,当它们完成回合时,将各自的子节点设置为true,并将另一个设置为false。另一名玩家会被通知该事件,并可以轮流上场。

最新更新