November 16, 2019
cmux 源码分析
cmux cmux 是soheilhy实现的一个复用连接的Go库,可以在同一个TCP listener上面监听多种服务
源码分析 cmux 项目结构如下,整个代码量包含test代码总共2k行,核心代码几百行,很适合阅读
➜ cmux git:(master) ✗ tree -L 2 . ├── CONTRIBUTORS ├── LICENSE ├── README.md ├── bench_test.go ├── buffer.go ├── cmd │ └── cmd.go ├── cmux.go ├── cmux_test.go ├── doc.go ├── example_recursive_test.go ├── example_test.go ├── example_tls_test.go ├── go.mod ├── go.sum ├── matchers.go ├── patricia.go └── patricia_test.go 在看cmux实现之前,可以先从README中看怎么使用cmux
// Create the main listener. l, err := net.Listen("tcp", ":23456") if err != nil { log.
Read more