k3s/vendor/github.com/docker/spdystream
Jeff Grafton 653d05c169 Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
..
spdy Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
BUILD Regenerate all BUILD files in vendor/ from scratch using gazelle 2017-08-16 15:48:25 -07:00
CONTRIBUTING.md Move deps from _workspace/ to vendor/ 2016-05-08 20:30:21 -07:00
LICENSE Move deps from _workspace/ to vendor/ 2016-05-08 20:30:21 -07:00
LICENSE.docs Move deps from _workspace/ to vendor/ 2016-05-08 20:30:21 -07:00
MAINTAINERS Move deps from _workspace/ to vendor/ 2016-05-08 20:30:21 -07:00
README.md Move deps from _workspace/ to vendor/ 2016-05-08 20:30:21 -07:00
connection.go Move deps from _workspace/ to vendor/ 2016-05-08 20:30:21 -07:00
handlers.go Move deps from _workspace/ to vendor/ 2016-05-08 20:30:21 -07:00
priority.go Move deps from _workspace/ to vendor/ 2016-05-08 20:30:21 -07:00
stream.go Move deps from _workspace/ to vendor/ 2016-05-08 20:30:21 -07:00
utils.go Move deps from _workspace/ to vendor/ 2016-05-08 20:30:21 -07:00

README.md

SpdyStream

A multiplexed stream library using spdy

Usage

Client example (connecting to mirroring server without auth)

package main

import (
	"fmt"
	"github.com/docker/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)

package main

import (
	"github.com/docker/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 © 2014-2015 Docker, Inc. All rights reserved, except as follows. Code is released under the Apache 2.0 license. The README.md file, and files in the "docs" folder are licensed under the Creative Commons Attribution 4.0 International License under the terms and conditions set forth in the file "LICENSE.docs". You may obtain a duplicate copy of the same license, titled CC-BY-SA-4.0, at http://creativecommons.org/licenses/by/4.0/.