我正在寻找一个高级Python库来 Build 到Web服务器的HTTP连接 . 理想情况下,连接应保持开放(持久)以发送和接收双向消息,因此Websocket对我来说很棒 . 因为我希望它与大多数HTTP代理兼容,我认为使用HTTP轮询(Comet风格)的“后备”模式 .
我的问题是我无法找到一个透明地管理这两种连接的库 . 理想情况下,我会使用其中一种技术(Websocket或Comet) Build 与服务器的连接,然后使用相同的函数为两种类型的连接发送/接收消息 .
我为此找到了许多Python服务器和一些Js客户端,但在Python中却找不到 . 我看了看:Twisted,Tornado,ZeroMQ,py4ws
2 回答
你看过socket.io吗?它主要用于websockets,但有很多后备,因此应该被所有浏览器支持 .
对于服务器端,我使用了flask和gevent-socketio . Miquel Gringberg最近发布了flask-socketio扩展,这对于使用flask和gevent-socketio来说是一个很好的抽象 . Gevent-socketio Build 在漂亮的gevent库上 .
gevent-socketio应该可以与其他Python框架一起使用,例如Django和Bottle .
我不完全确定这是否适合你的账单,但可能值得一看 .
我认为Python Socket-IO客户端可能是一个很好的解决方案:https://github.com/invisibleroads/socketIO-client
他可以使用相同的范例轻松地与Socket.io NodeJs服务器进行交互 .
我测试了它,它可以默认使用Websocket连接和回退到xhr-polling,这很棒(我实际上通过代理测试了这个功能) .
示例: