moyaya
V2EX  ›  问与答

Python下有什么比较好的实时推送信息的方案?

  •  
  •   moyaya · Jun 4, 2013 · 6790 views
    This topic created in 4754 days ago, the information mentioned may be changed or developed.
    手工客的交易系统上线之后,想再完善一下我们社区现有的站内信功能(方便买卖双方的对话),介于即时通信和站内信中间的一种方案,能够实时推送数据,而不依赖于用户的强制刷新,类似微博的私信。

    请教一下,python下面有什么好的解决方案,或推荐比较成熟的库。

    Comet据说有延时,实际用过的也来指教一下,谢谢!
    13 replies    1970-01-01 08:00:00 +08:00
    jerry
        1
    jerry  
       Jun 4, 2013
    websocket 不过只适用于现代浏览器,老浏览器只能长链接了
    moyaya
        2
    moyaya  
    OP
       Jun 4, 2013
    @jerry 哎,这个是我们最头痛的,我们的用户80%都是用360之类的浏览器。
    jerry
        3
    jerry  
       Jun 4, 2013
    用类tornado的异步功能做长链接好了
    moyaya
        4
    moyaya  
    OP
       Jun 4, 2013
    @jerry 我们用的是django
    spritevan
        5
    spritevan  
       Jun 4, 2013
    socket.io 或者 pyxmpp
    feilaoda
        6
    feilaoda  
       Jun 4, 2013
    @moyaya 直接socket.io啊
    后台架一个nodejs server,和django共存
    搞复杂点,就是web版的im了。
    buru
        7
    buru  
       Jun 4, 2013
    socket.io做推送 ,都有现成的解决方案了吧
    eYeer
        8
    eYeer  
       Jun 4, 2013
    在页面搞个定时器,ajax获取消息不可以吗?
    还要什么方案?
    moyaya
        9
    moyaya  
    OP
       Jun 4, 2013
    @eYeer @buru @feilaoda @spritevan @jerry 感谢几位:)

    如果用coment长连接的话,代码改动太大,还是先用ajax轮询来做吧

    再次谢谢!
    julyclyde
        10
    julyclyde  
       Jun 4, 2013 via iPad
    @moyaya 360其实挺现代的
    zhy0216
        11
    zhy0216  
       Jun 4, 2013
    我是用eventsource做的
    moyaya
        12
    moyaya  
    OP
       Jun 5, 2013
    @julyclyde IE 8的内核
    hepochen
        13
    hepochen  
       Jun 5, 2013 via iPad
    楼主没看明白大家的意思,比如socket.io是一个解决方案,它会自动判断与处理websocket以及长连接轮询。

    python中也有基于gevent的socket.io的服务端解决方案,融合到django中还算简单。

    socket.io原生库的服务端解决方案是node.js
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5327 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 07:54 · PVG 15:54 · LAX 00:54 · JFK 03:54
    ♥ Do have faith in what you're doing.