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

时间:2016-04-16 19:45:11

标签: ios swift push-notification firebase urbanairship.com

我已经制作了IOS,多人回合制游戏。我的目标是让玩家轮到他们,然后将推送通知发送给其他玩家的设备,通知他们轮到他们玩了。

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

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

如果无法做到这一点,任何人都可以引导我朝正确的方向前进吗?我做了大量的研究,我发现的一切都指向了Parse,当然正在关闭。

感谢。

3 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:0)

哪种通知以及何时发送取决于您和您的服务器端脚本。像这样写服务器有一些逻辑,它在需要的时候发送通知。

答案 2 :(得分:0)

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

我建议利用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

一旦他们确定了他们所属的游戏,他们就可以观察到该游戏的转弯节点。转弯节点将为用户提供到目前为止发生的事情;转#,事件等。

然后任何未来事件,例如当uid_0接受turn_id_4并激活阶段时,都会通知uid_1该事件。

有许多不同的方法来设置它,例如

completed_turns
  uid_0: true
  uid_1: false

在这个超级简单的示例中,uid_0和uid_1都会观察completed_turns节点,当它们完成轮次时,将其各自的子节点设置为true,并将另一个子节点更改为false。其他玩家将收到该事件的通知,并可轮流使用。