@
liaohongxing http1.x 应该是比较完整了,你可以试下。multipart/form-data, application/x-www-form-urlencoded, application/json 之类的,这些不影响 parser 解析规则,解析后的数据是丢给了标准库的 http.Request 里的 header ,标准库支持的应该就自动支持了,如果遇到 bug 可以开个 issue 给我
fasthttp 好像还没支持 trailer ,nbio/nbhttp 也是支持了的
websokcet 通过了全面的测试项 Autobahn Test Suite ,readme 里有链接可以参考下,这得感谢外国友人 acgreek 来提需求和 pr 。而且因为支持并发写,本身也是非阻塞写,所以不需要像 gorilla 那样在遇到广播场景时直接写就行,不需要像 melody 那样在 gorilla 基础上额外封装 chan 的 send 队列(基于标准库的 conn 是阻塞写,广播场景如果某个连接窗口拥塞、写阻塞了,广播循环时其他 conn 就都得等着了,也是线头阻塞的一种)。
BTW ,melody 的接口设计很赞,个人很喜欢。前阵子发现它有个可能宕机的 bug ,去提了 pr:
github.com/olahol/melody/pull/67但是 melody 作者似乎不维护了,issue 列表里有其他人提问,不知道作者是不是遇到了什么困难放弃了,各位使用 melody 时注意下,可以修复下然后使用自己的 branch 保平安。衷心希望 God Bless Him!
http2.0 太差了,不打算支持了,如果哪天有体力,可能会考虑开另一个库去改造下 quic/3.0 ,因为虽然是 udp ,但目前 go 版本的 quic 实现还都是提供了同步 conn 方案、仍然是一个 session 至少一个 goroutine 的方式,并发量大应该还是 cover 不住 1000k 。去年就有想过,但是也是够复杂,而且去年撸 tls http websocket 那几个月有点伤元气了,需要缓缓。。