gpt4 book ai didi

push-notification - 了解 Windows Phone 8.1 的推送通知

转载 作者:行者123 更新时间:2023-12-04 19:06:10 25 4
gpt4 key购买 nike

我试图了解我需要在我的服务器上构建什么才能使推送通知成功工作。

我的想法是:

  • 手机将通知 URL 发送到我的服务器
  • 服务器将信息存储在数据库中
  • 一个单独的进程或 PHP 脚本将查询数据库并为每个设备打开连续循环进程。 (每个套接字都将查询第 3 方 API)
  • 当在该设备的 API 中检测到更改时,将向设备的通知 url 发送推送通知。

  • 这是需要做什么的正确方法。这不会消耗服务器资源还是推送通知服务器的预期结果?

    我在下面制作了一个简单的图表:

    enter image description here

    最佳答案

    首先,让我们将PUSH所需的主要阶段中的过程分开。

  • 设备订阅。
  • 发送PUSH
  • 在设备上处理通知。

  • 订阅

    对于订阅,您的设备(更具体地说,您的应用程序)必须调用 PUSH api,以启用 PUSH 通知。对推送 API 的调用将为您提供一个唯一标识您的应用程序安装和运行的设备的 URL。您应该将此 URL 存储在数据库中,就像存储用户的电子邮件或用户的电话号码一样。这里没有特殊的黑魔法。只有在需要向用户发送通信时才使用它。

    发送PUSH

    对于推送内容,与电子邮件或 SMS 消息传递的方法相同:“一个人不会简单地进行无限循环并在检测到任何更改时发送消息”。您需要做的是,只需在应用程序需要时发送 PUSH 消息。因此,您有了要向其发送消息的用户,而不是打开 SMTP 连接来发送邮件,只需构建 PUSH XML 消息并调用与该用户关联的 URL。这里需要考虑的一些事情是:
  • 网络可靠性(连接不上服务器需要重试)。
  • 响应错误代码处理(例如,如果服务器告诉您手机已卸载您的应用程序,您无需重试)。
  • 可扩展性。您不想从 PHP 代码发送 PUSH 消息,因为您不知道完成任务需要多长时间。你必须异步地制作这个东西。所以只需将所有推送消息排队,您可以创建一个单独的进程(windows 服务、nodeJS 服务、cron 作业、守护进程等)来发送 PUSH、处理重试和错误并清理队列。

  • 在设备上处理通知

    所以现在你已经到了这一步,你需要处理手机上的通知。这取决于您发送的 PUSH 通知的类型:
  • 瓦。如果用户已将您的应用程序置于开始屏幕,您将更新应用程序磁贴的图像、文本和计数器。在客户端,您不需要这样做,因为所有这些参数都是您的 PUSH 请求的一部分。
  • toast 。这需要标题、文本(或多或少限制为 35 个字符)和您的 APP 内的相对 URL。您的应用程序将使用您在有效负载中指定的 URI 启动(例如,当您单击来自 Twitter 的 Toast 通知时)。所以这里已经可以注入(inject)一些数据了。您可能/也可能不会向您的服务器请求新数据。它是由你决定。
  • 生的。这个几乎是无声的。如果您的 APP 未运行,则用户看不到。你可能猜到了,这种推送对于实时更新你正在运行的APP很有用,而不是不断地轮询你的服务器,浪费用户电池和带宽,浪费你的服务器资源。您可以发送任何内容(原始字节或字符串),直到我的 Microsoft 允许的最大有效负载大小。

  • 如果您还有其他问题,请随时提问。

    底线:分离 PUSH 发送,使其异步,不要忘记...

    关于push-notification - 了解 Windows Phone 8.1 的推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24038183/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com