moby/spdystream

GitHub: moby/spdystream

一个基于 SPDY 协议的 Go 多路复用流库,允许在单个 TCP 连接上创建和管理多条独立数据流。

Stars: 149 | Forks: 60

# SpdyStream 一个使用 spdy 的多路复用流库 ## 用法 客户端示例(连接到无需身份验证的镜像服务器) ``` package main import ( "fmt" "github.com/moby/spdystream" "net" "net/http" ) func main() { conn, err := net.Dial("tcp", "localhost:8080") if err != nil { panic(err) } spdyConn, err := spdystream.NewConnection(conn, false) if err != nil { panic(err) } go spdyConn.Serve(spdystream.NoOpStreamHandler) stream, err := spdyConn.CreateStream(http.Header{}, nil, false) if err != nil { panic(err) } stream.Wait() fmt.Fprint(stream, "Writing to stream") buf := make([]byte, 25) stream.Read(buf) fmt.Println(string(buf)) stream.Close() } ``` 服务端示例(无需身份验证的镜像服务器) ``` package main import ( "github.com/moby/spdystream" "net" ) func main() { listener, err := net.Listen("tcp", "localhost:8080") if err != nil { panic(err) } for { conn, err := listener.Accept() if err != nil { panic(err) } spdyConn, err := spdystream.NewConnection(conn, true) if err != nil { panic(err) } go spdyConn.Serve(spdystream.MirrorStreamHandler) } } ``` ## 版权与许可 版权所有 2013-2021 Docker, inc。基于 [Apache 2.0 许可证](LICENSE) 发布。
标签:Go, Ruby工具, SPDY, 内核驱动, 多路复用, 日志审计, 网络协议, 网络库