下载proto-quic源码
1 | sudo su |
我测试时proto-quic的版本:git commit id: 9f1ab92724ce2647585e62b0e8155ee7368697ce
安装依赖
如果是第一次安装,需要先安装依赖
1 | cd 进入 quic_stuff/proto-quic |
用gn生成ninja编译所需的文件
1 | cd 进入 quic_stuff/proto-quic/src |
使用ninja编译源码
1 | cd 进入 quic_stuff/proto-quic/src |
运行quic_server和quic_client
基本上按照 https://www.chromium.org/quic/playing-with-quic 的步骤来就可以了。以下是简单描述:
准备测试用的网页
1 | mkdir /tmp/quic-data |
编辑下载下来的index.html文件,如果headers中存在Transfer-Encoding: chunked和Alternate-Protocol: ...则删除掉。
并且在headers的末尾追加一行X-Original-Url: https://www.example.org/
生成证书
1 | cd 进入 quic_stuff/proto-quic/src/net/tools/quic/certs |
运行quic_server
1 | ./out/Default/quic_server \ |
运行quic_client
1 | ./out/Default/quic_client --host=127.0.0.1 --port=6121 https://www.example.org/ |
简单测试大量数据的持续性发送的方法
编辑/tmp/quic-data/www.example.org/index.html:
在
Content-Length字段的值要大于http body中内容的大小。值得注意的是,官方网站上明确说明,这两个demo是为了功能演示用的,不能大规模运用,所以这样的测试结果只能做个参考。
编译release版本
1 | 编辑 proto-quic/src/build/config/compiler/BUILD.gn |
同步chromuim中的最新代码至proto-quic
1 | cd 进入 proto-quic |
但是由于我的云主机不能翻墙,所有下载失败了。
其他
按官方的说法,proto-quic目前在linux下只支持ubuntu系统。
参考链接
- google/proto-quic
- https://www.chromium.org/quic/playing-with-quic
- https://chromium.googlesource.com/chromium/src/tools/gn/
- Ninja, a small build system with a focus on speed
本文完,作者yoko,尊重劳动人民成果,转载请注明原文出处: https://pengrl.com/p/31237/