【发布时间】:2017-12-07 14:44:59
【问题描述】:
我正在创建一个应用程序,我希望用户在他们关注的任何人发布图片时在应用程序中得到通知。因此,假设用户 A 关注用户 B,当用户 B 发布图片时,它会实时显示在用户 A 的屏幕上。我的问题是:这种事情是使用推送通知完成的吗?就像在收到通知时请求获取图像一样,还是使用套接字或队列更好?
【问题讨论】:
我正在创建一个应用程序,我希望用户在他们关注的任何人发布图片时在应用程序中得到通知。因此,假设用户 A 关注用户 B,当用户 B 发布图片时,它会实时显示在用户 A 的屏幕上。我的问题是:这种事情是使用推送通知完成的吗?就像在收到通知时请求获取图像一样,还是使用套接字或队列更好?
【问题讨论】:
这是推送通知最常见的用例之一。您的 iOS 应用程序会询问用户发送通知的权限,然后向 Apple 注册以接收推送通知。 Apple 提供了一个“令牌”,它是该通知订阅的唯一标识符,然后您的应用需要将其发送到您的服务器。当需要通知用户一张新照片或其他信息时,您的服务器使用 Apple 的 APNS 服务发送通知,并使用令牌来识别收件人。
因此,应用程序和服务器使用多个 Apple 提供的 API 来创建通信通道,然后您可以随意添加任何逻辑来确定通知的时间和内容。
在尝试实施任何东西之前,我建议通读 Apple 的 Remote Notifications Programming Guide 的全部内容,以充分了解这项技术的所有部分是如何组合在一起的。
还有其他可以使用的技术吗?也许。对于 iOS 应用,Firebase 本质上是一个更加独立于平台的包装器,它构建在上述 Apple 通知系统之上;在后台,它仍在使用 APNS,并且需要一些相同的初始步骤来配置您的应用程序。套接字类型的技术可能适用于有限的用例,但由于在后台运行应用程序的限制(以及其他原因),它不是用于通用通知传递的正确方法。
【讨论】:
对于这样的实时操作,您可以使用 google 的 firebase 您也可以使用 推送通知 发送可能包含图像 url 的模型,并在收到时加载图像并显示它,同样的功能也可以通过 socketIO 完成
【讨论】: