基于etty4实现的苹果通知推送服务Java客户端。特点:
支持第三版通知推送,即commad=2。目前的绝大部分Java客户端都只支持commad=1,即第二版。
支持SSL握手成功才返回,可以调用pushMaager.start().syc();等待握手成功才开始发送;
最大限度重试发送,内部自动处理重连,错误重发机制;
支持配置RejectListeer,即通知被Apple服务器拒绝之后的回调接口;
支持配置ShutdowListeer,即当shutdow时,没有发送完的消息处理的回调接口;
支持发送统计信息;
实现组件分离,可以利用PushCliet,FeedbackCliet来写一些灵活的代码。
Notificatio发送者可以自己定义设置发送的Queue,自己灵活处理阻塞,超时等问题。
Example:
更多的例子在src/test/java目录下。
public class MaiExample { public static void mai(Strig[] args) throws IterruptedExceptio { Eviromet eviromet = Eviromet.Product; Strig password = "123456"; Strig keystore = "/home/hegyuabc/test/apptype/app_type_1/productAPNS.p12"; PushMaager pushMaager = ew PushMaagerImpl(keystore, password, eviromet); //set a push queue BlockigQueuequeue = ew LikedBlockigQueue(8192); pushMaager.setQueue(queue ); //waitig for SSL hadshake success pushMaager.start().syc(); //build a otificatio Strig toke = "5f6aa01d8e3358949b7c25d461bb78ad740f4707462c7eafbebcf74fa5ddb387"; Notificatio otificatio = ew NotificatioBuilder() .setToke(toke) .setBadge(1) .setPriority(5) .setAlertBody("xxxxx").build(); //put otificatio ito the queue queue.put(otificatio); TimeUit.SECONDS.sleep(10); //get statistic ifo Statistic statistic = pushMaager.getStatistic(); System.out.pritl(statistic); }}
评论