com.tc.simple.apn.quicktests.Test2.java Source code

Java tutorial

Introduction

Here is the source code for com.tc.simple.apn.quicktests.Test2.java

Source

/*
 *  Copyright Tek Counsel LLC 2013
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License at:
 * 
 * http://www.apache.org/licenses/LICENSE-2.0 
 * 
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
 * implied. See the License for the specific language governing 
 * permissions and limitations under the License.
 */

package com.tc.simple.apn.quicktests;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

import javax.net.ssl.KeyManagerFactory;

import org.apache.commons.io.IOUtils;

import com.tc.simple.apn.Payload;
import com.tc.simple.apn.factories.APNSocketPool;
import com.tc.simple.apn.factories.IAPNSocketPool;
import com.tc.simple.apn.factories.PayloadFactory;
import com.tc.simple.apn.factories.PushByteFactory;
import com.tc.simple.apn.factories.SocketWrapper;

public class Test2 {

    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) {
        try {

            System.out.println(KeyManagerFactory.getDefaultAlgorithm());

            String token = "8cebc7c08f79fa62f0994eb4298387ff930857ff8d14a50de431559cf476b223";

            InputStream in = Test2.class.getResourceAsStream("webshell-dev.p12");
            byte[] p12 = IOUtils.toByteArray(in);

            Map<String, Object> custom = new HashMap<String, Object>();
            //custom.put("scriptfunction", "afterPushNotice");
            //custom.put("customdata", "hi there");
            //custom.put("url","http://google.com");

            for (int i = 0; i < 2; i++) {
                Payload payload = new PayloadFactory().buildPayload(token, "Hi There " + i, 0, null, custom);
                //String payload="{\"aps\":{\"alert\":\"yabadabadooo" + i + "\"}}";
                //String payload = "{\"aps\":{\"alert\":\"Hi There" + i + "\"}}";
                send(p12, payload.getToken(), i * 100, payload.getJson());
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static void send(byte[] p12, String token, int id, String json) {
        IAPNSocketPool factory = new APNSocketPool();
        SocketWrapper socket = null;
        try {

            socket = factory.checkOut(p12, "xxxxxxxxx", false);
            Payload payload = new Payload();
            payload.setJson(json);
            payload.setToken(token);

            byte[] message = new PushByteFactory().buildPushBytes(id, payload);
            socket.write(message);

            InputStream response = socket.getSocket().getInputStream();
            int errorCode = response.read();

            if (errorCode > 0) {
                new APNSocketPool().killSocket(socket);
            } else {

            }

        } catch (java.net.SocketTimeoutException n) {

        } catch (Exception n) {
            n.printStackTrace();
        } finally {
            factory.checkIn(socket);
        }
    }

}