苹果推送nodejs+apn

安装nodejs的apn

<!-- lang: shell -->
npm install apn

默认安装到了用户目录,要让本机程序找到require的头文件需要设置环境变量

<!-- lang: shell -->
NODE_PATH=C:\Users\xxx\node_modules

性能测试

对同一个token,相同消息,循环调用函数

<!-- lang: js -->
service.pushNotification(note, tokens);

10000次所消耗时间为100ms左右。 当然了,nodejs的必杀技就是异步的嘛,所以发送速度很快。 最大连接数分别设为1、10、100。以开始发送起,到最后一次触发发送成功回调函数位置。所消耗的时间分别为:15s、12.4s、9s。后来反复测试发现基本都在10s到17s之间波动。而且与最大连接数无关。可见apn的性能大约在600-1100qps。 当最大连接数设置为100时,通过

<!-- lang: shell -->
netstat -ano | find "2195"

发现其连接数只有1。参数“maxConnections”根本没有起作用。 查看源代码文件connection.js 在函数 Connection.prototype.serviceBuffer = function() 中:

<!-- lang: js -->
//从sockets数组取一个socket
if (socket !== null)
...// 发送消息
else if (!this.initialisingConnection() && this.sockets.length < this.options.maxConnections)
    this.createConnection(); // 创建新连接

只有当没有有效的socket可用时才会创建新的连接。测试中只对一个token循环发送,可能使得socket根本就不忙。这一个连接的socket一直都有效,所以就没有建立其他的连接。可以在高并发、同一个信息发送多个token再测试一下。

转载于:https://my.oschina.net/u/1864567/blog/292554

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值