Closed zhangtianxiao closed 2 years ago
可以啊 我建了个QQ群779740988. 你的代码可以发过来看看不, 目前的实现还没考虑206的状态.
resp.setHeader("Connection","keep-alive"), 这个在http/1.1里不用设置, 默认都是开的, 且不需要服务器设置, 所以就没判断. 这里逻辑是与tomcat一致的.
如果在http/1.0里, netty已经实现了, 所以不用考虑这些逻辑
我测试了一下, 在DefaultServlet里解决了你这个问题, 在2.2.8版本. 过两天就能在maven中央仓库导入到pom.xml了
你的单元测试中没有关于206的代码. 你实现的http在此处表现地有些奇怪. 我的认知, 在http-nio背景下, servlet.NettyOutputStream.write(filechannel, offset, limit), channel代表了bodyStream. 客户端按自己需求对bodyStream做读取, 实操现象, 在chrome控制台观察由video引发的请求, size和time的数值是不正常的, 随着time增大, size不变, 虽然可以正常播放, 进度条亦不受影响可以拖动,
同时发现resp.setHeader("Connection","keep-alive")是无效的, 断点了一下发现当exchange支持keep-alive时, 会忽略nettyHeaders中的keep-alvie头,
你有什么头绪吗.
在此处回复你在上一个issue中的邀请, 我对git pull request的流程并不熟悉, 我会尝试去做的. 我希望你能建立一个该项目专属的qq群, 如果可以的话. 像这个问题, 我可以把我的206实现, 和另一个206表现正常的httpserver的代码发群里, 你得空也方便查阅.