1029
新东方
主题使用手册__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-阿里云