AmazonSNSClient , subscribe , confirmSubscription

_JerryChen 2014-04-11 05:24:04
项目需要,最近花了些时间学习了下AWS SNS。在ios平台上写了个Demo,就是在程序起来后,创建Endpoint,然后去订阅一个事先在SNS 后台创建好的Topic。各种准备就绪后,调用AmazonSNSClient的subscribe方法去订阅Topic,到此为止调用都正常。看了下subscribe方法的说明,文档中提到调用这个方法后要调用confirmSubscription确认订阅:



但是在调用confirmSubscription方法时,出现一个异常,意思是说Token不对:



从代码看,前后给的device token都一样。为嘛这里会抛异常,或者说我对这里的Token理解有误,这里的Token不是指device token?

更奇怪的是,虽然程序在最后一步抛异常,但是SNS控制台中能看到创建的Endpoint,并且订阅也成功了,SNS控制台推送的消息也能收到。

subscribe方法的返回值是SNSSubscribeResponse,查了下SNSSubscribeResponse的文档描述,在这里有个 subscriptionArn属性,从这个属性的说明来看,貌似在调用subscribe方法后不是非要调用confirmSubscription:




最后总结下问题:

1、subscribe方法说明中明确指出调用该方法后一定要调用confirmSubscription方法进行确认;

2、调用confirmSubscription方法,传的token与调用subscribe中的token相同(都是device token)时,程序异常,大概是说token不对;

3、第2个问题虽然发生了,但是SNS后台的endpoint创建成功,并且也订阅Topic成功了,而且推送功能正常;

4、由第3个问题发现,不调用confirmSubscription也能达到目的;

5、从subscribe方法的返回值SNSSubscribeResponse的说明中发现,调用 subscribe后有可能不需要调用confirmSubscription。


虽然推送功能实现了,但是这个问题还是没弄明白。 求解!
...全文
1223 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

409

社区成员

发帖
与我相关
我的任务
社区描述
AWS
社区管理员
  • AWS
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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