V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ipconfiger
V2EX  ›  Python

Python下貌似没有一个靠谱的APNS的client,容易调通好用的不支持长连接(比如APNSWrapper),pip上那个apns需要key和cert两个文件,不容易调通,而且看源码大多数的库都是写了个半吊子。

  •  
  •   ipconfiger · 2013-12-30 17:02:46 +08:00 · 5297 次点击
    这是一个创建于 3983 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有人用过比较靠谱的Python的APNS provider么?
    10 条回复    1970-01-01 08:00:00 +08:00
    kier
        1
    kier  
       2013-12-30 17:08:15 +08:00
    哎,我写了个,本来准备开源的,可惜公司不让!
    assad
        2
    assad  
       2013-12-30 17:49:45 +08:00
    ipconfiger
        3
    ipconfiger  
    OP
       2013-12-30 18:08:43 +08:00
    @kier 写起来比较费功夫,不是催得急本来都打算自己写一个

    @assad 测试过feedback没?有无在生产环境跑过?
    felinx
        4
    felinx  
       2013-12-30 18:52:31 +08:00
    自己写给200-500行的,我这是自己写的
    felinx
        5
    felinx  
       2013-12-30 19:03:30 +08:00
    est
        6
    est  
       2013-12-30 19:11:38 +08:00
    apns支持长连接就几行代码的事情啊。有那么复杂么。

    我觉得麻烦主要是调度。什么定时发送,区分语言、时区(不要凌晨2点吵醒用户),这个涉及到后台任务队列架构,才是麻烦。讨厌celery的飘过。
    ipconfiger
        7
    ipconfiger  
    OP
       2013-12-30 21:58:18 +08:00
    @est 长连接过一段时间会自己断掉,然后如果空闲不知道多少时间也会自己断掉,然后这两个时间文档里没有说明。
    这个也不算太复杂,但是最复杂的事情就是懒。为啥要自己写呢
    est
        8
    est  
       2013-12-30 22:22:07 +08:00
    @ipconfiger 大多数连接池都是只为频繁请求起作用。如果连接掉了,on-demand再临时开一个也不是什么大负担。。。随意设置个timeout即可啊。比如1小时什么的。

    还有APNS服务器用的akamai cdn,好几个IP。我觉得可以随便日。
    ipconfiger
        9
    ipconfiger  
    OP
       2013-12-31 00:10:17 +08:00
    @assad 修改版not work
    kier
        10
    kier  
       2013-12-31 09:14:46 +08:00
    apns的连接长时间没有发送数据的话,会自己断掉,可以试试tcp的keepalive,或者定时断掉重连,我就是在没有数据的十分钟后自己主动断掉,有数据来了,再去连;
    另外还有错误重发的问题,apns会返回错误的那条消息的identifier,你可以根据这个id,去把后面的消息都重发一遍,尽量保证消息的到达!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3435 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:43 · PVG 19:43 · LAX 03:43 · JFK 06:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.