v1.3 更新:若首字节不像HTTP,则不再接管连接。 #9
bddjr
announced in
Announcements
Replies: 2 comments
-
后续我发现初始化http2不需要额外导入模块,只需要更改TLS配置,于是我发布了 v1.3.1 版本 Lines 49 to 56 in c14c8f2 |
Beta Was this translation helpful? Give feedback.
0 replies
-
如果没有bug,这是最后的更新。 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
2024年12月3日,我解决了tlslistener分支导致HTTP2失效的bug,然后参考该分支的实现方式,更改了主分支,发布了 v1.3.0 版本。
从此,mod不再对连接造成持续的性能影响。
首先,监听器会先创建mod接管的连接,再创建TLS连接
hlfhr/src_tlslistener.go
Lines 8 to 29 in c14c8f2
然后该连接的Read方法被调用后,判断第一个字节,如果不像HTTP,则调用
setRawConn
方法,替换 TLS 连接内部的conn
属性,此后不再接管该连接。setRawConn
仅使用一次unsafe.Pointer
完成针对tls.Conn
私有属性的修改,避免了使用reflect
造成的不必要的性能浪费。hlfhr/src_conn.go
Lines 15 to 25 in c14c8f2
hlfhr/src_conn.go
Lines 53 to 64 in c14c8f2
Beta Was this translation helpful? Give feedback.
All reactions