1

我需要向我的应用程序的所有用户发送推送通知消息。我知道我需要一个从每个用户那里收到的 URI 来将消息发回给他们。

所以,我必须注册 ChannelUriUpdated 事件并将 URI 发送到我的服务器。在我的服务器中,我应该将这些数据存储在数据库中,并使用 URI 列表来发送消息。

我不确定这是否是完美的方法。但如果是,我怎么知道特定设备的 URI 是否从我的服务器更新。我不想在我的数据库中为每个设备存储多个 URI。

我是否还应该使用唯一的 URI 发送设备的 GUID?

4

3 回答 3

0

Uri设备更新时,您应该将Uri服务器上的旧设备替换为新设备。所以,一个设备 - 一个 Uri。

如果您需要在不识别每个用户的情况下向所有用户发送通知,并且此要求将来不会改变 - 不要保存 GUID。只需将通知发送到存储Uri的,仅此而已。

于 2012-03-26T08:27:48.003 回答
0

我是否还应该使用唯一的 URI 发送设备的 GUID?

那是你不清楚:你在每个电话唯一的 GUID 和不是的 URI之间建立了一对多的关系。

您应该将 GUID 作为主键存储在数据库中,并将 URI 作为列存储。每当您输入新密钥时,请检查提供的 GUID 是否已经存在,在这种情况下,您可以UPDATE使用INSERT.

于 2012-03-26T08:43:46.057 回答
0

当 MPNS 返回一个推送 URI 时,它标识了一个唯一的“设备中的应用程序”,即,安装在设备中请求推送通知的每个应用程序都被赋予不同的 URI。

现在,我不负责 WP7 应用程序,只负责 Web 服务部分,但我认为应用程序每次启动时都必须重新验证 URI。在这种情况下,您应该更新之前存储的 URI,这就是为什么您应该存储设备 ID,以便您可以跟踪和更新之前的频道。

还要注意响应代码,因为在某些情况下您必须按照此处所述停止发送新通知:

http://msdn.microsoft.com/en-us/library/ff941100(v=vs.92).aspx

于 2012-03-26T08:43:49.433 回答