我已经制作了IOS,多人回合制游戏。我的目标是让玩家轮到他们,然后将推送通知发送给其他玩家的设备,通知他们轮到他们玩了。
我已经尝试过Urban Airship,并在那里有一个示例应用程序,能够向所有已注册的设备或手动输入的设备广播推送通知。
是否可以从我的应用程序中仅向其他玩家触发城市飞艇推送通知?如果需要,我可以从Firebase数据库中提取对手设备令牌。
如果无法做到这一点,任何人都可以引导我朝正确的方向前进吗?我做了大量的研究,我发现的一切都指向了Parse,当然正在关闭。
感谢。
答案 0 :(得分:3)
如果您使用的是Firebase,则可以使用一个很棒的解决方案。有一个很好的服务叫Batch。 Batch有助于发送推送通知,它可以与Firebase配合使用。基本上,您可以在登录应用程序时将具有Firebase Auth Id的用户注册到批处理服务中,现在您可以使用他的Firebase Auth ID和Batch提供的REST API在他的设备上发送通知。
它对我很有用。我有一个脚本来观察我的Firebase数据并决定是否需要发送任何通知。如果是,它使用Batch REST API来执行此操作,并立即发送通知。
您可以在此处找到有关如何将Batch与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。其他玩家将收到该事件的通知,并可轮流使用。