type connection … // NewClientConnection creates a new SPDY client connection. func NewClientConnection(conn net.Conn) (httpstream.Connection, error) { … } // NewClientConnectionWithPings creates a new SPDY client connection. // // If pingPeriod is non-zero, a background goroutine will send periodic Ping // frames to the server. Use this to keep idle connections through certain load // balancers alive longer. func NewClientConnectionWithPings(conn net.Conn, pingPeriod time.Duration) (httpstream.Connection, error) { … } // NewServerConnection creates a new SPDY server connection. newStreamHandler // will be invoked when the server receives a newly created stream from the // client. func NewServerConnection(conn net.Conn, newStreamHandler httpstream.NewStreamHandler) (httpstream.Connection, error) { … } // NewServerConnectionWithPings creates a new SPDY server connection. // newStreamHandler will be invoked when the server receives a newly created // stream from the client. // // If pingPeriod is non-zero, a background goroutine will send periodic Ping // frames to the server. Use this to keep idle connections through certain load // balancers alive longer. func NewServerConnectionWithPings(conn net.Conn, newStreamHandler httpstream.NewStreamHandler, pingPeriod time.Duration) (httpstream.Connection, error) { … } // newConnection returns a new connection wrapping conn. newStreamHandler // will be invoked when the server receives a newly created stream from the // client. func newConnection(conn *spdystream.Connection, newStreamHandler httpstream.NewStreamHandler, pingPeriod time.Duration, pingFn func() (time.Duration, error)) httpstream.Connection { … } const createStreamResponseTimeout … // Close first sends a reset for all of the connection's streams, and then // closes the underlying spdystream.Connection. func (c *connection) Close() error { … } // RemoveStreams can be used to removes a set of streams from the Connection. func (c *connection) RemoveStreams(streams ...httpstream.Stream) { … } // CreateStream creates a new stream with the specified headers and registers // it with the connection. func (c *connection) CreateStream(headers http.Header) (httpstream.Stream, error) { … } // registerStream adds the stream s to the connection's list of streams that // it owns. func (c *connection) registerStream(s httpstream.Stream) { … } // CloseChan returns a channel that, when closed, indicates that the underlying // spdystream.Connection has been closed. func (c *connection) CloseChan() <-chan bool { … } // newSpdyStream is the internal new stream handler used by spdystream.Connection.Serve. // It calls connection's newStreamHandler, giving it the opportunity to accept or reject // the stream. If newStreamHandler returns an error, the stream is rejected. If not, the // stream is accepted and registered with the connection. func (c *connection) newSpdyStream(stream *spdystream.Stream) { … } // SetIdleTimeout sets the amount of time the connection may remain idle before // it is automatically closed. func (c *connection) SetIdleTimeout(timeout time.Duration) { … } func (c *connection) sendPings(period time.Duration) { … }