推送通知-移动到移动[重复]
Posted
技术标签:
【中文标题】推送通知-移动到移动[重复]【英文标题】:Push Notification - Mobile to Mobile [duplicate] 【发布时间】:2019-10-13 22:17:48 【问题描述】:我想从一部手机向另一部手机发送消息(推送通知)。 Firebase 有推送通知服务,但不是直接在移动设备之间。
它可以是移动到桌面(上游),也可以是桌面到移动(下游)。
基本上,该应用应该将警报从一部手机发送到另一部手机。
我是初学者,如果已经有这个功能将不胜感激。
【问题讨论】:
不同设备上的应用无法知道其他设备的设备Token。您至少可以从设备向主题发送消息。所以这个话题的所有订阅者都会收到通知.. 仅使用 Firebase Cloud Messaging 无法安全地将推送通知从一台设备直接发送到另一台设备,因为您需要知道 FCM 服务器密钥才能发送消息;并且知道客户端设备中的服务器密钥意味着任何客户端都可以向您应用程序的所有用户发送任何消息。其他一些服务提供了这样的服务,因为它们提供了另一种保护消息发送的方式,但 Firebase Cloud Messaging 没有。因此,如果您只想使用 FCM,则需要一台服务器。见***.com/a/39279716 和***.com/a/37993724。 【参考方案1】:至少在瑞典是不可能的,因为移动运营商正在使用 IP 地址进行一些时髦的路由。因此,只能从手机创建传出连接。即使您拥有移动 IP 地址,您也无法锁定并获得正在进行的连接。
这就是为什么 Firebase、Signal 等服务可以灵活地解决这个问题的原因
当然,有些运营商会提供额外收费的静态 IP 地址,这样就可以运行任何传入的内容,但用户一般不会订阅此地址,因为他们没有使用它
期待有人能证明我错了..
【讨论】:
【参考方案2】:我是在 Web 配置的帮助下完成的。
您将需要一个 Web 数据库表来保存每个设备的 FCM 令牌和用户名。
用户名可以是任何唯一的东西,你可以从任何你想要的注册过程中获得,或者你也可以为了测试目的对其进行硬编码,但 FCM 令牌 ID 必须是自动生成的,你可以找到如何从网络获取它的代码。
每个设备 FCM 令牌 ID 都附有用户名,并且必须是唯一的,用于区分网络中的所有设备。
现在流程将是--
发送方手机 -> 拥有所有 FCM 令牌 ID(和发送通知的代码)的服务器 -> 接收方手机
您从发送方设备调用服务器,向其发送消息和接收方的用户名。
现在在服务器端,它将搜索其表并找到您发送的特定用户名的特定 FCM 令牌 ID。
现在它会将给定的消息发送到具有特定令牌 ID 的设备。
希望对您有所帮助!
【讨论】:
以上是关于推送通知-移动到移动[重复]的主要内容,如果未能解决你的问题,请参考以下文章