我需要向我的应用的所有用户发送推送通知消息。我知道我需要一个从每个用户收到的URI来发回消息。
所以,我必须注册ChannelUriUpdated事件并将URI发送到我的服务器。 在我的服务器中,我应该将这些数据存储在数据库中,并使用URI列表发送消息。
我不确定这是否是完美的方法。但如果是,我怎么知道特定设备的URI是否从我的服务器更新。我不想在每个设备的数据库中存储多个URI。
我是否还应该使用唯一URI发送设备的GUID?
答案 0 :(得分:0)
更新设备的Uri
时,应将服务器上的旧Uri
替换为新的Uri
。所以,一个设备 - 一个Uri。
如果您需要向所有用户发送通知而不识别每个用户,并且此要求在将来不会更改 - 请勿保存GUID。只需向存储的{{1}}发送通知即可。
答案 1 :(得分:0)
我是否还应该使用唯一URI发送设备的GUID?
那是你不清楚:你的GUID之间有一对多的关系,每个手机 唯一,而不是。
您应该将GUID存储为数据库中的主键,将URI存储为列。每当您输入新密钥时,请检查提供的GUID是否已存在,在这种情况下,您UPDATE
而不是INSERT
。
答案 2 :(得分:0)
当MPNS返回推送URI时,它会识别唯一的“设备中的应用”,即,在请求推送通知的设备中安装的每个应用都会被赋予不同的URI。
现在,我不负责WP7应用程序,只是web服务部分,但我认为应用程序必须在每次启动时重新验证URI。 在这种情况下,您应该更新先前存储的URI,这就是您应该存储设备ID的原因,因此您可以跟踪和更新上一个频道。
还要注意响应代码,因为在某些情况下您必须停止发送新通知,如下所述:
http://msdn.microsoft.com/en-us/library/ff941100(v=vs.92).aspx