使用Python 2.7实现SPDY客户端

时间:2013-05-30 11:30:37

标签: python python-2.7 spdy

我正在尝试使用Python 2.7中的SPDY。我发现Python-spdylay库是C实现的包装器。我意识到库的某些部分只是Python 3。

我想从Python 2.7(http://spdylay.sourceforge.net/python.html#simple-spdy-client)上的Python-spdylay文档重现以下示例的行为:

#!/usr/bin/env python

# The example SPDY client.  You need Python 3.3 or later because we
# use TLS NPN.
#
# Usage: spdyclient.py URL...
#
import sys
import spdylay

class MyStreamHandler(spdylay.BaseSPDYStreamHandler):
    def on_header(self, nv):
        sys.stdout.write('Stream#{}\n'.format(self.stream_id))
        for k, v in nv:
            sys.stdout.write('{}: {}\n'.format(k, v))

    def on_data(self, data):
        sys.stdout.write('Stream#{}\n'.format(self.stream_id))
        sys.stdout.buffer.write(data)

    def on_close(self, status_code):
        sys.stdout.write('Stream#{} closed\n'.format(self.stream_id))

if __name__ == '__main__':
    uris = sys.argv[1:]
    spdylay.urlfetch(uris, MyStreamHandler)

换句话说,我只想获取一个网址并提供回调,但是使用SPDY。

PyPi提供了这个陈述

  

核心库API适用于Python 2和3.但是ThreadedSPDYServer   需要Python 3.3,因为它使用TLS NPN扩展。

我认为这意味着spylay.urlfetchspdylay.BaseSPDYStreamHandler使用ThreadedSPDYServer,所以也许我可以使用非线程SPDYServer?

0 个答案:

没有答案