有关消息推送 device token的问题

fuqinyijiu 2012-08-28 05:24:15
关于消息推送,一直不解。服务器如何得到所有的客户端的device token。


1。每个客户端都可以把device token发给APNS服务器。
2。本地消息服务器发送信息到APNS服务器时,都要有device token。


这个device token从哪里获取的?Debug时能够理解,我们可以自行读取itouch/ipad/iphone上的。但是上线的APP,device token应该都是用户主动push到APNS。我们又怎么从APNS服务器上获取到这些device token呢?难道每次发消息只能发到一个device token?
...全文
3928 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
run_fly 2012-10-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

一般是这样:device token是由客户端获取后发送给你自己的服务器。当需要推送消息时,你的服务器发送带device token的推送消息给苹果的服务器,苹果服务器根据device token再推到对应的客户端
[/Quote]




请问我往手机上装应用的时候,手机没有连接外网,依然能够直接获得到device token,它是怎么从apns获得的? 给我的感觉就是device token 直接手机ios上获取的呢?
fuqinyijiu 2012-08-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
需要存起来。
[/Quote]存起来的话是存到本地数据库吗?如果是的话,用户删除推送客户端的时候怎么同步删除服务器端数据库的记录。

还有,我下载的ios服务器端有个feedback device功能,看起来是获取用户注册时的device的,但是总是拿不到数据。
/**
* Retrieves a list of inactive devices from the Feedback service.
* @param args
*/
private static void feedbackTest(String[] args) {
String keystore = args[0];
String password = args[1];
boolean production = args.length >= 3 ? args[2].equalsIgnoreCase("production") : false;
try {
List<Device> devices = Push.feedback(keystore, password, production);

for (Device device : devices) {
System.out.println("Inactive device: " + device.getToken());
}
} catch (CommunicationException e) {
e.printStackTrace();
} catch (KeystoreException e) {
e.printStackTrace();
}
}
Proteas 2012-08-29
  • 打赏
  • 举报
回复
需要存起来。
fuqinyijiu 2012-08-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

一般是这样:device token是由客户端获取后发送给你自己的服务器。当需要推送消息时,你的服务器发送带device token的推送消息给苹果的服务器,苹果服务器根据device token再推到对应的客户端
[/Quote]
那服务器端获取客户端device是即时性的还是客户端将device发送到一个地方存储起来?
erica_sadun 2012-08-29
  • 打赏
  • 举报
回复
你说的问题就是官方给的图中的第3步,这个绝对要自己的服务器把每个DeviceToken存起来的,用FeedBack接收,ps:
Proteas 2012-08-29
  • 打赏
  • 举报
回复
需要存到服务器端。
Proteas 2012-08-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

一般是这样:device token是由客户端获取后发送给你自己的服务器。当需要推送消息时,你的服务器发送带device token的推送消息给苹果的服务器,苹果服务器根据device token再推到对应的客户端
[/Quote]
正解。
需要你自己将从苹果获得的token,发给自己的服务器。
巴依老爷 2012-08-28
  • 打赏
  • 举报
回复
一般是这样:device token是由客户端获取后发送给你自己的服务器。当需要推送消息时,你的服务器发送带device token的推送消息给苹果的服务器,苹果服务器根据device token再推到对应的客户端

29,049

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧