推送通知的 WNS 或 MPNS?

Posted

技术标签:

【中文标题】推送通知的 WNS 或 MPNS?【英文标题】:WNS or MPNS for Push notifications? 【发布时间】:2013-09-30 13:43:24 【问题描述】:

我正在创建一个应用程序,该应用程序不断使用推送通知作为用户之间的通信方式(各种消息传递)。这整个磨难似乎让我有点发疯,所以这里有几个我找不到答案的问题。

    我发现在MPNS 中提到,未经身份验证的 Web 服务(没有证书的 Web 服务)被限制为每个订阅每天 500 个推送通知。但是,在尝试查找有关 WNS 的限制时,我无法在任何地方找到此类提及。 WNS 是否存在这些限制/要求?

    充其量,我发送了相当多的推送通知(即每个活跃用户每秒 1-3 个)。我知道这可能会消耗最小设备的电池寿命(我的目标通常是 Windows 8 设备),但轮询服务器以获取更新也是如此。我的方法具有响应迅速的优势,但我不确定推送(原始)通知是否适用于此类通信。有没有其他选择?基本上,由于移动网络的性质,我已经放弃了持久连接选项(连接可能会掉线)

    这两者的实际区别是什么?

也许我对术语有些困惑,其他一些消息来源表明我什至不能绕过 MPNS,但 WNS 不正是这样做的吗?

我不确定这是否是发布这些问题的合适媒体,但我希望有人能对此有所了解。

【问题讨论】:

【参考方案1】:

    MPNS 中每个订阅每天 500 条推送通知仅适用于您未对 MPNS 的服务调用进行身份验证。如果您进行身份验证,则不会有任何限制。

    如此高的频率似乎不适合用于移动设备的推送通知,但我不确定其他替代方案。

    WNS 是适用于 Windows 8 商店应用程序的推送通知服务。 MPNS 是 Windows Phone 设备的推送通知服务。 您应该使用的服务取决于您所针对的操作系统。

【讨论】:

谢谢!您是否知道 WNS 的类似限制(每日限制)。基本上我的目标是 Windows 8 设备,包括 PC、平板电脑和手机。这是否意味着我必须为 WP8 使用单独的解决方案,或者是 MPNS WP7 解决方案和所有 W8 设备的 WNS?另外,当您说这可能不合适时,仅仅是因为电池电量问题还是我的方法在设计上有缺陷?我最近研究的是通知中心,这可能是捆绑这些推送的部分解决方案。这仍然意味着要发送大量通知,但可以将它们捆绑在一起。 MPNS 适用于所有 Windows Phone 设备(WP7、WP8)。 WNS 仅适用于 Windows 8。如果您针对这两种操作系统,则必须同时使用这两种操作系统。移动应用程序的推送通知不应该以如此高的频率发送。它们旨在通知应用程序的用户有关应用程序的某些更新,并且用户不希望在短时间内从同一个应用程序收到很多消息。 好的!非常感谢你!一些实际测试表明,wins 会很快限制消息,因此这种方法甚至是不可能的。 请注意,这些信息在 2013 年是完全正确的,但现在已经过时了。我的答案中的详细信息。【参考方案2】:

随着 Windows Phone 8.1 的发布,WNS 现在也可用于 Windows Phone。由于收敛是目标,因此更喜欢新的 WNS API。尽管如此,MPN API 仍可用于向后兼容。 WP8.1 中的 MPN 层实际上是一个建立在 WNS 之上的 shim。有关详细信息,请观看 Build 2014 会话“Notification Platform Development on Windows”。

【讨论】:

【参考方案3】:

您应该使用 WNS,因为 Windows Phone 8.1 也将这种方法用于通用应用程序。 WP 8.1 Silverlight 应用程序可以同时使用两者。

【讨论】:

以上是关于推送通知的 WNS 或 MPNS?的主要内容,如果未能解决你的问题,请参考以下文章

GCM 和 WNS 禁止向非活动设备发送推送通知的策略

Windows Phone 8 推送通知 (MPNS) 服务器代码

MPNS 推送通知通道从不返回 HTTPS URI

推送通知时的 MPNS 错误请求 (WP 8.1)

无法发送 WNS 推送通知

在创建通知通道 Windows Phone 7 时获取 MPNS 返回到推送客户端的 URI