是否可以将HTTP2与HTTPListener一起使用

Ron*_*dau 8 .net httplistener http2

是否可以将HTTP2功能与HTTPListeners一起使用?我没有听到任何关于它的消息,但我听说IIS/asp.net堆栈的新版本支持它,所以我希望HTTPListener也会被ugpraded或者提供替代方案.

如果没有什么是支持http2的最佳选择,使用原始套接字还是可以扩展httplistener?

编辑:澄清我不只是在寻找一个"报告"http2的解决方案,而是一个能让我实际使用http2新功能的解决方案,例如推送内容,我的用例是我有一个自定义CMS(自编写)服务器是极低的延迟(立即回复所有请求),唯一剩下的就是能够推送内容并能够多路复用,因为目前唯一可以实现的加速是避免来自这么多的rountrips的延迟

cod*_*zen 9

HttpListener是Windows内核模块http.sys的托管"客户端" (类似于IIS也是它的客户端).处理HTTP/2的此模块的此版本似乎仅在Win10/IE中可用.如果您在Win10上运行并且建立了HTTP/2连接,则它可能看起来相同HttpListener,因为http.sys驱动程序的接口为客户端抽象了协议HttpListener.如果有什么不同,那就是HttpListenerResponse.ProtocolVersion显示HTTP/2.

看看HttpListener它的来源,它似乎http.sys是面向blob 的接口,只是订阅请求并在一个大blob中获取请求数据.此blob构成托管HttpListenerContext类的基础,托管类将请求和响应数据公开为属性.在HttpListenerResponse通过发送响应http.sys由数据破入头和它通过暴露数据块OutputStream属性.如果支持多流,则需要更改此公共API.它当然不受支持,我的猜测是它们不会改变这个API,如果HttpListener它支持HTTP/2 ,它将完全抽象HTTP/2或提供某种WriteAsync方法在这个更高级别进行多路复用.听起来你想直接写http.sys,以利用协议的低级功能.