1
kier 2013-12-30 17:08:15 +08:00
哎,我写了个,本来准备开源的,可惜公司不让!
|
2
assad 2013-12-30 17:49:45 +08:00
|
3
ipconfiger OP |
4
felinx 2013-12-30 18:52:31 +08:00
自己写给200-500行的,我这是自己写的
|
5
felinx 2013-12-30 19:03:30 +08:00
简单的你可以用 https://github.com/djacobs/PyAPNs
我的那个d3status demo中有用 https://github.com/felinx/d3status/blob/master/d3status/libs/apnswrapper.py |
6
est 2013-12-30 19:11:38 +08:00
apns支持长连接就几行代码的事情啊。有那么复杂么。
我觉得麻烦主要是调度。什么定时发送,区分语言、时区(不要凌晨2点吵醒用户),这个涉及到后台任务队列架构,才是麻烦。讨厌celery的飘过。 |
7
ipconfiger OP @est 长连接过一段时间会自己断掉,然后如果空闲不知道多少时间也会自己断掉,然后这两个时间文档里没有说明。
这个也不算太复杂,但是最复杂的事情就是懒。为啥要自己写呢 |
8
est 2013-12-30 22:22:07 +08:00
@ipconfiger 大多数连接池都是只为频繁请求起作用。如果连接掉了,on-demand再临时开一个也不是什么大负担。。。随意设置个timeout即可啊。比如1小时什么的。
还有APNS服务器用的akamai cdn,好几个IP。我觉得可以随便日。 |
9
ipconfiger OP @assad 修改版not work
|
10
kier 2013-12-31 09:14:46 +08:00
apns的连接长时间没有发送数据的话,会自己断掉,可以试试tcp的keepalive,或者定时断掉重连,我就是在没有数据的十分钟后自己主动断掉,有数据来了,再去连;
另外还有错误重发的问题,apns会返回错误的那条消息的identifier,你可以根据这个id,去把后面的消息都重发一遍,尽量保证消息的到达! |