souriki 2017-03-31 3174浏览量
MNS消息服务在功能上可以大致分为队列和主题两大块,其中队列功能是提供一对一的传统消息队列中间件服务,主题功能是提供一对多的的广播消息服务。
MNS的主题功能可以支持将一条消息以多种方式广播到用户的终端。MNS的主题功能不仅支持广播到用户的HttpServer,也支持推送到用户的MNS队列里,还支持通过短信、邮件的方式做推送。现在,主题功能也支持通过移动推送直接将消息广播到用户的App终端。
未来我们也会根据广播推送的场景做更多的有机结合:比如用户可以在一条消息里同时指定推送App和推送短信分别的展示内容,然后在推送App不可达时改为推送短信;再比如比较常见的监控报警场景,一条报警消息可以被通过多种途径发出去等。
MNS的主题功能对移动推送的支持,是通过阿里云的RAM授权使用了阿里云的移动推送这个产品,所以用户需要先开通“移动推送”。
配置App:App创建成功后,强烈建议您去配置app。在APP详情页点击配置应用。
配置SDK
创建订阅
移动推送的具体属性可以参考 这里
MNS的JavaSDK在这里
try {
String topicName = TOPICNAME;
TopicMeta meta = new TopicMeta();
meta.setTopicName(topicName);
CloudTopic topic = client.createTopic(meta);
String pushEndpoint = topic.generatePushEndpoint("XXXX");
SubscriptionMeta subMeta = new SubscriptionMeta();
subMeta.setSubscriptionName(SUBNAME);
subMeta.setNotifyStrategy(SubscriptionMeta.NotifyStrategy.EXPONENTIAL_DECAY_RETRY);
subMeta.setEndpoint(pushEndpoint);
topic.subscribe(subMeta);
RawTopicMessage msg = new RawTopicMessage();
msg.setMessageBody("hello topic");
MessageAttributes messageAttributes = new MessageAttributes();
PushAttributes pushAttributes = new PushAttributes();
pushAttributes.setTarget(PushAttributes.PushTarget.ALL);
pushAttributes.setTargetValue("ALL");
pushAttributes.setDeviceType(PushAttributes.PushDeviceType.ALL);
pushAttributes.setTitle("JavaSDK");
pushAttributes.setBody("Hello From JavaSDK");
pushAttributes.setPushType(PushAttributes.PushType.MESSAGE);
pushAttributes.setParam("AndroidOpenType", "APPLICATION");
messageAttributes.setPushAttributes(pushAttributes);
topic.publishMessage(msg, messageAttributes);
} catch (ServiceException se) {
System.out.println(se.getErrorCode() + se.getRequestId());
System.out.println(se.getMessage());
se.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
如果您在使用过程中遇到了什么问题,或者有什么想法愿意一起交流,请站内信或者工单联系我们~
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。