活瓷砖 - 保持联系

时间:2012-08-03 13:34:06

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

动态磁贴能够接收推送通知,而无需运行相关的城域应用程序。

但是我认为应用程序必须至少运行一次,以便应用程序获取通知通道并订阅通知服务器,将通道传递给服务器。

我的问题是 -

如果服务器切断客户端会怎样?如果用户关闭他们的计算机,我认为服务器将开始接收传递失败错误。然后,服务器可能会切断客户端。

但是当用户重新打开电脑时会发生什么?在用户再次启动应用程序并重新订阅服务器以进行通知之前,磁贴现在是否已断开连接?

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

2 个答案:

答案 0 :(得分:2)

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

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

请注意,磁贴通道在30天后过期,并且需要(以编程方式)续订。该指南是您应该在应用运行时续订,以确保它不会过期。

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

考虑到这一点的另一种方式可能就是糟糕的通知 - 例如“新项目”计数。如果您在设备与网络断开连接时关闭此号码(关闭,驱动等),则您的服务将成功发送通知,当该计算机重新连接时,它将无缝地看到徽章更新。

答案 1 :(得分:1)

您应该在代码中处理这一点,当您的服务器中的客户端脱机然后您应该删除它们并断开它们时,客户端将只接收实时磁贴中的缓存值。

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

快速提示:如果您使用WCF作为服务,则可能需要检查Announcement Service Class那里可以处理客户端在线/离线情况。