有关苹果推送

来源:互联网 发布:检查英语语法的软件 编辑:程序博客网 时间:2024/06/06 20:59

1.一开始是自己直接写多线程来发送推送


2.后来使用开源项目

最近在做苹果推送,找到了一个比较好的开源项目,国人写的

下载地址为:https://github.com/RamosLi/dbay-apns-for-java


JAVA APNS苹果推送


下面是直接开发的一些总结:
主要用到多线程的一些知识:
point1:Concurent包下的 ExecutorService 
创建他的方法:new FixedThreadPool(poolSize);
创建好对象后,使用它的execute(new Runnable(){}的内部类)方法


public class ApnsServiceImpl implements IApnsService {private static Log logger = LogFactory.getLog(ApnsServiceImpl.class);private ExecutorService service = null;private ApnsConnectionPool connPool = null;private IApnsFeedbackConnection feedbackConn = null;private ApnsServiceImpl(ApnsConfig config) {int poolSize = config.getPoolSize();service = Executors.newFixedThreadPool(poolSize);SocketFactory factory = ApnsTools.createSocketFactory(config.getKeyStore(), config.getPassword(), KEYSTORE_TYPE, ALGORITHM, PROTOCOL);connPool = ApnsConnectionPool.newConnPool(config, factory);feedbackConn = new ApnsFeedbackConnectionImpl(config, factory);}@Overridepublic void sendNotification(final String token, final Payload payload) {service.execute(new Runnable() {@Overridepublic void run() {IApnsConnection conn = null; try {conn = getConnection();conn.sendNotification(token, payload);} catch (Exception e) {logger.error(e.getMessage(), e);} finally {if (conn != null) {connPool.returnConn(conn);}}}});}


0 0