日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

javaPNS进阶-高级推送技巧

發(fā)布時間:2023/12/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javaPNS进阶-高级推送技巧 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?
1 創(chuàng)建 payloads
javaPNS提供了很多簡單易用的通知方式(Push類里的alert,badges,sounds等)這些讓你不用自己處理payload.但是我們的程序可能需要復雜的推送信息,因此我們可以通過payload來定制推送信息:
public void send (List<Device> devices, Object keystore, String password, boolean production) {
?
? ? ? ?/* Build a blank payload to customize */?
? ? ? ? PushNotificationPayload payload = PushNotificationPayload.complex();


? ? ? ?/* Customize the payload */?
? ? ? ? payload.addAlert("Hello World!");
? ? ? ? payload.addCustomDictionary("mykey1", "My Value 1");
? ? ? ? payload.addCustomDictionary("mykey2", 2);
? ? ? ? // etc.
?
? ? ? ?/* Push your custom payload */?
? ? ? ? List<PushedNotification> notifications = Push.payload(payload, keystore, password, production, devices);


}



2 發(fā)送大量通知(多線程)
javaPNS包含了用于安全高效的發(fā)送大量數(shù)據(jù)的多線程方法,通過下面的代碼可以給大量設備發(fā)送推送消息
public void send (List<Device> devices, Object keystore, String password, boolean production) {
?
? ? ? ?/* 準備一個簡單的通知 */?
? ? ? ? PushNotificationPayload payload = PushNotificationPayload.alert("Hello World!");
?
? ? ? ?/* 指定需要多少線程發(fā)送 */?
? ? ? ? int threads = 30;


? ? ? ?/* 啟動線程并發(fā)送 */?
? ? ? ? List<PushedNotification> notifications = Push.payload(payload, keystore, password, production, threads, devices);
}

注意:上面的多線程發(fā)送方法只會在所有線程都發(fā)送完成后返回一次給notifications,如果你不想等待直到發(fā)送完畢,那么就新開一個線程執(zhí)行上面的操作吧


3生成推送隊列(連接池)
javaPNS支持使用隊列(連接池)的方式。此隊列是一個由多個連接至APNS服務器線程的集合,他們可以實時的將消息推送至APNS。下面是創(chuàng)建連接池的代碼
public void send (String token, Object keystore, String password, boolean production) {
?
? ? ? ?/* 準備一條push信息 */?
? ? ? ? PushNotificationPayload payload = PushNotificationPayload.alert("Hello World!");
?
? ? ? ?/* 指定線程數(shù)*/?
? ? ? ? int threads = 30;


? ? ? ?/* 建立隊列 */?
? ? ? ? PushQueue queue = Push.queue(keystore, password, production, threads);
?
? ? ? ?/* Start the queue (所有的線程和連接將被初始化) */?
? ? ? ? queue.start();
?
? ? ? ?/* 添加一個推送信息 */?
? ? ? ? queue.add(payload, token);
}

我們可以通過PushQueue的getPushedNotifications() 方法來獲取返回信息。
如果你不手動啟動此隊列,它將會在第一次調(diào)用add方式時自動啟動


4更靈活的發(fā)送方式
?javaPNS可以使用下面這種更靈活的方式發(fā)送通知:
public void send (List<Device> devices, Object keystore, String password, String appleHost, int applePort) {
?
? ? ? ?/* 指定服務器信息 */?
? ? ? ? AppleNotificationServer customServer = new AppleNotificationServerBasicImpl(keystore, password, ConnectionToAppleServer.KEYSTORE_TYPE_PKCS12, appleHost, applePort);

? ? ? ?/* 創(chuàng)建一個簡單的payload */?
? ? ? ? PushNotificationPayload payload = PushNotificationPayload.alert("Hello World!");
?
? ? ? ?/* 創(chuàng)建一個 push notification manager */?
? ? ? ? PushNotificationManager pushManager = new PushNotificationManager();

? ? ? ?/* 初始化連接 */?
? ? ? ? pushManager.initializeConnection(customServer);
?
? ? ? ?/* 推送消息并獲得結果*/?
? ? ? ? List<PushedNotification> notifications = pushManager.sendNotifications(payload, devices);
?
}

轉載于:https://www.cnblogs.com/jiangu66/p/3155636.html

總結

以上是生活随笔為你收集整理的javaPNS进阶-高级推送技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。