1029
windows
主题使用手册__Java SDK_SDK使用手册_消息服务-阿里云
本文档介绍如何使用java sdk中的sample代码,完成创建主题、创建订阅,发布消息、接收消息以及删除主题等操作。
1. 准备
- 下载最新版java sdk,解压到aliyun-sdk-mns-samples文件夹;
- 用Eclipse导入Maven工程,选中aliyun-sdk-mns-samples文件夹;
- 在用户目录(Linux系统为”/home/YOURNAME/“目录或者Windows系统为 “C:UsersYOURNAME”目录)中创建.aliyun-mns.properties文件,并填写服务地址、AccessKeyID和AccessKeySecret:
- AccessKeyId、AccessKeySecret
- 访问阿里云API的密钥对;
- 如果使用主账号访问,登陆阿里云 AccessKey 管理页面创建、查看;
- 如果使用子账号访问,请登录阿里云访问控制控制台查看;
- Endpoint
- 访问MNS的接入地址,登陆MNS控制台 单击右上角 获取Endpoint 查看;
- 不同地域的接入地址不同,分为公网以及内网域名;
- AccessKeyId、AccessKeySecret
2. 创建主题
下面给出了创建主题的代码示例,有关主题详细信息请参考详情;
public class CreateTopicDemo {public static void main(String[] args) {CloudAccount account = new CloudAccount("YourAccessId", "YourAccessKey", "MNSEndpoint");MNSClient client = account.getMNSClient(); // 在程序中,CloudAccount以及MNSClient单例实现即可,多线程安全String topicName = "TestTopic";TopicMeta meta = new TopicMeta();meta.setTopicName(topicName);try {CloudTopic topic = client.createTopic(meta);} catch (Exception e)e.printStackTrace();System.out.println("create topic error, " + e.getMessage());}client.close();}}
3. 启动HttpEndpoint
aliyun-sdk-mns-samples中有一个HttpEndpoint.java类,简单实现了一个本地启动的Http消息接收端,主要功能包括:
对MNS推送消息请求做签名验证;解析推送请求的消息body体;返回相应的处理返回码:200;
HttpEndpoint的具体实现源码可参考sdk中源码;
4. 创建订阅
对已经创建好的主题Topic进行订阅,在订阅时需要设置对应的推送Endpoint地址(目前支持HTTP、邮件以及队列)、错误重试策略、推送消息格式等;
public class SubscribeDemo {public static void main(String[] args) {CloudAccount account = new CloudAccount("YourAccessId", "YourAccessKey", "MNSEndpoint");MNSClient client = account.getMNSClient(); // 在程序中,CloudAccount以及MNSClient单例实现即可,多线程安全CloudTopic topic = client.getTopicRef("TestTopic");try {SubscriptionMeta subMeta = new SubscriptionMeta();subMeta.setSubscriptionName("TestSub");subMeta.setEndpoint(HttpEndpoint.GenEndpointLocal());subMeta.setNotifyContentFormat(SubscriptionMeta.NotifyContentFormat.XML);String subUrl = topic.subscribe(subMeta);System.out.println("subscription url: " + subUrl);} catch (Exception e) {e.printStackTrace();System.out.println("subscribe/unsubribe error");}client.close();}}
5.发布消息
在创建好主题以及订阅之后,并且已经启动了HttpEndpoint,我们可以向Topic发布消息。
public class PublishMessageDemo {public static void main(String[] args) {CloudAccount account = new CloudAccount("YourAccessId", "YourAccessKey", "MNSEndpoint");MNSClient client = account.getMNSClient(); // 在程序中,CloudAccount以及MNSClient单例实现即可,多线程安全CloudTopic topic = client.getTopicRef("TestTopic");try {TopicMessage msg = new Base64TopicMessage(); //可以使用TopicMessage结构,选择不进行Base64加密msg.setMessageBody("hello world!");msg = topic.publishMessage(msg);System.out.println(msg.getMessageId());System.out.println(msg.getMessageBodyMD5());} catch (Exception e) {e.printStackTrace();System.out.println("subscribe error");}client.close();}}
6. 查看HttpEndpoint接收消息
第5步发布了一条消息到Topic中,MNS会将该消息推送到所有的订阅Endpoint,本例中的HttpEndpoint会将接收到的消息打印出来。
7. 取消订阅
如果不需要接收主题的消息,则可以选择取消订阅。
public class UnsubscribeDemo {public static void main(String[] args) {CloudAccount account = new CloudAccount("YourAccessId", "YourAccessKey", "MNSEndpoint");MNSClient client = account.getMNSClient(); // 在程序中,CloudAccount以及MNSClient单例实现即可,多线程安全CloudTopic topic = client.getTopicRef("TestTopic");try {topic.unsubscribe("TestSub");} catch (Exception e) {e.printStackTrace();System.out.println("unsubribe error");}client.close();}}
8.删除主题
最后选择将Topic删除。
public class DeleteTopicDemo {public static void main(String[] args) {CloudAccount account = new CloudAccount("YourAccessId", "YourAccessKey", "MNSEndpoint");MNSClient client = account.getMNSClient(); // 在程序中,CloudAccount以及MNSClient单例实现即可,多线程安全CloudTopic topic = client.getTopicRef("TestTopic");try {topic.delete();} catch (Exception e) {e.printStackTrace();System.out.println("delete topic error");}client.close();}}
最后更新:2016-11-23 16:04:12
上一篇:
队列使用手册__Java SDK_SDK使用手册_消息服务-阿里云
下一篇:
发送消息示例代码__Java SDK_SDK使用手册_消息服务-阿里云
ColumnValue__DataType_API 参考_表格存储-阿里云
设置内外网地址__网络管理_用户指南_云数据库 RDS 版-阿里云
查询域名配置__配置操作接口_API 手册_CDN-阿里云
创建Pipeline__Pipeline管理_Console参考手册_数据集成-阿里云
会话保持常见问题__常见问题_负载均衡-阿里云
客户端错误__错误代码表_API参考_弹性伸缩-阿里云
开通批量计算__快速入门_批量计算-阿里云
查看操作日志__日志管理_用户指南_负载均衡-阿里云
附录一 元数据库数据字典__附录_使用手册_分析型数据库-阿里云
配置负载均衡实例的攻击防护能力__实例管理_用户指南_负载均衡-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云