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-阿裏雲