最近刚开始看nodejs,于是想把之前写得稀烂的Python+RabbitMQ实现多线程APN推送推送重写一次。

实际完成后代码量很少,用到了两个库 node-apnnode-amqp,我要做的只是将两者结合起来打打酱油。

####需要完善的部分:

rabbitmq的ack机制

现在仅仅是拿到消息调用推送函数后就返回ack了,实际上此时并不确定是否推送成功了(因为是异步),所以应该是在推送的transmitted事件触发后再返回ack。

####准备工作:

安装rabbitmq
拿到推送证书 cert.pem和key.pem
修改receive.js中的队列名称

####运行:

npm install
node receive.js

demo代码已发到https://github.com/henter/NodeRabbitMQAPN

APN推送峰值大概为2000条每秒,完爆之前python多线程的实现方式。