mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 10:03:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			78 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# SpdyStream
 | 
						|
 | 
						|
A multiplexed stream library using spdy
 | 
						|
 | 
						|
## Usage
 | 
						|
 | 
						|
Client example (connecting to mirroring server without auth)
 | 
						|
 | 
						|
```go
 | 
						|
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()
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
Server example (mirroring server without auth)
 | 
						|
 | 
						|
```go
 | 
						|
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)
 | 
						|
	}
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
## Copyright and license
 | 
						|
 | 
						|
Copyright 2013-2021 Docker, inc. Released under the [Apache 2.0 license](LICENSE).
 |