【转】多线程推送 push JavaPNS 2.1

以前用的 javapns-jdk15-165.jar 不支持多线程。后来在网上找到新的一个jar,可以支持多线程发送,与大家分享一下,不知道写的对不对,不对的话请指出,多谢。
将消息以多线程方式推送到iPhone服务器,不知道写的对不对,我在本地上测试是没有问题的,如有疑问请留言。
以下项目所用的jar包:
JavaPNS_2.1.jar
bcprov-jdk16-145-1.jar
log4j-1.2.15.jar
只记得这几个jar,如果不对,请留言我在看一下,多谢指正
JavaPNS_2.1.jar 地址
http://code.google.com/p/javapns/
public static void main(String[] args){  
    String keystore = "D:/XXXXXXXX/XXX.p12";//证书路径和证书名  
    String password = "XXXXXXXX"; // 证书密码  
    String token = "XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX";// 手机唯一标识  
    boolean production = true; // 设置true为正式服务地址,false为开发者地址  
    int threadThreads = 10; // 线程数  
try {  
        // 建立与Apple服务器连接  
        AppleNotificationServer server = new AppleNotificationServerBasicImpl(keystore, password, production  );  
    List<PayloadPerDevice> list = new ArrayList<PayloadPerDevice>();  
    PushNotificationPayload payload = new PushNotificationPayload();  
    payload.addAlert("推送内容");  
    payload.addSound("default");// 声音  
        payload.addBadge(1);//图标小红圈的数值  
    payload.addCustomDictionary("url","www.baidu.com");// 添加字典   
    PayloadPerDevice pay = new PayloadPerDevice(payload,token);// 将要推送的消息和手机唯一标识绑定  
    list.add(pay);  
  
        NotificationThreads work = new NotificationThreads(server,list,threadThreads);//   
    work.setListener(DEBUGGING_PROGRESS_LISTENER);// 对线程的监听,一定要加上这个监听  
    work.start(); // 启动线程  
    work.waitForAllThreads();// 等待所有线程启动完成  
  
 } catch (Exception e) {  
    e.printStackTrace();  
        }  
}  



// 线程监听  
public static final NotificationProgressListener DEBUGGING_PROGRESS_LISTENER = new NotificationProgressListener() {  
        public void eventThreadStarted(NotificationThread notificationThread) {  
            System.out.println("   [EVENT]: thread #" + notificationThread.getThreadNumber() + " started with " + " devices beginning at message id #" + notificationThread.getFirstMessageIdentifier());  
        }  
        public void eventThreadFinished(NotificationThread thread) {  
            System.out.println("   [EVENT]: thread #" + thread.getThreadNumber() + " finished: pushed messages #" + thread.getFirstMessageIdentifier() + " to " + thread.getLastMessageIdentifier() + " toward "+ " devices");  
        }  
        public void eventConnectionRestarted(NotificationThread thread) {  
            System.out.println("   [EVENT]: connection restarted in thread #" + thread.getThreadNumber() + " because it reached " + thread.getMaxNotificationsPerConnection() + " notifications per connection");  
        }  
        public void eventAllThreadsStarted(NotificationThreads notificationThreads) {  
            System.out.println("   [EVENT]: all threads started: " + notificationThreads.getThreads().size());  
        }  
        public void eventAllThreadsFinished(NotificationThreads notificationThreads) {  
            System.out.println("   [EVENT]: all threads finished: " + notificationThreads.getThreads().size());  
        }  
        public void eventCriticalException(NotificationThread notificationThread, Exception exception) {  
            System.out.println("   [EVENT]: critical exception occurred: " + exception);  
        }  
     };  



JavaPNS_2.1.jar (141.3 KB)
下载次数: 1988
log4j-1.2.15.jar (382.7 KB)
下载次数: 3100
bcprov-jdk15-146.jar (1.7 MB)
下载次数: 3211


你可能感兴趣的:(javap)