【问题标题】:Live Tiles - staying connectedLive Tiles - 保持联系
【发布时间】:2012-08-03 13:34:06
【问题描述】:

动态磁贴无需运行相关的 Metro 应用即可接收推送通知。

但是我相信应用程序必须至少运行一次才能让应用程序获取通知通道并订阅通知服务器,并将通道传递给服务器。

我的问题是——

如果服务器切断客户端会发生什么?如果用户关闭他们的计算机,我认为服务器将开始接收交付失败错误。然后服务器可能会切断客户端。

但是当用户重新打开计算机时会发生什么?磁贴现在是否断开连接,直到用户再次启动应用程序并重新向服务器订阅通知?

或者有没有办法让磁贴在启动时自动重新订阅而无需运行应用程序?

【问题讨论】:

    标签: windows-8 microsoft-metro live-tile


    【解决方案1】:

    推送通知不直接发送给客户端;它们是通过云中的 Windows 通知服务发送的。这意味着您的服务将能够发送它们。当机器退出睡眠/重新连接到网络时,WNS 服务将正确处理通知。

    http://msdn.microsoft.com/en-us/library/windows/apps/hh913756.aspx 对通知的服务端进行了概述。

    请务必注意,磁贴频道将在 30 天后过期,并且需要(以编程方式)更新。指导意见是,您应该在应用运行时进行续订,以确保它不会过期。

    我似乎在文档中找不到的唯一一件事是客户端上有多少推送通知排队 - 我怀疑对于给定的标签通知,只保留一个。

    也许另一种考虑这个问题的方法是错误通知——例如“新项目”计数。如果您在设备与网络断开连接(关闭、驱动等)时推送此号码,那么您的服务将成功发送通知,并且当该机器重新连接时,它将无缝地看到徽章更新。

    【讨论】:

      【解决方案2】:

      您应该在代码中处理,当您的客户端从服务器离线时,您应该删除它们并断开它们,客户端将只接收活动磁贴中的缓存值。

      如果他们重新启动,那么您还应该在服务器端处理它以推送新的通知数据。

      简单提示:如果您使用 WCF 作为您的服务,您可能需要查看Announcement Service Class,在那里您可以处理您的客户在线/离线场景。

      【讨论】:

        猜你喜欢
        • 2011-08-10
        • 1970-01-01
        • 1970-01-01
        • 2020-10-21
        • 2021-04-07
        • 1970-01-01
        • 2019-06-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多