我正在尝试使用 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)
换句话说,我只想获取一个 url 并提供回调,但使用 SPDY。
PyPi 提供了这个声明
核心库 API 适用于 Python 2 和 3。但 ThreadedSPDYServer 需要 Python 3.3,因为它使用 TLS NPN 扩展。
我假设这意味着spylay.urlfetch
和spdylay.BaseSPDYStreamHandler
使用ThreadedSPDYServer
,所以也许有一个非线程的 SPDYServer,我可以使用?