websocket

package
v1.22.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 26, 2017 License: MIT Imports: 9 Imported by: 9

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Conn

type Conn interface {
	ReadMessage() (messageType int, p []byte, err error)
	WriteMessage(messageType int, data []byte) error
	WriteControl(messageType int, data []byte, deadline time.Time) error
	SetCloseHandler(h func(code int, text string) error)
	Close() error
}

Conn interfaces out the underlying (gorilla) websocket implementation, so we can mock it out easily when testing, etc.

func NewWebsocketConn

func NewWebsocketConn(c *gorilla.Conn) Conn

NewWebsocketConn creates a websocket Conn

type Dialer

type Dialer interface {
	// Dial opens a websocket connection from the client
	Dial(urlStr string, requestHeader http.Header) (Conn, *http.Response, error)
}

Dialer interface

type Hub

type Hub interface {
	// Dial handshakes websocket connection from client side
	Dial(urlStr string, requestHeader http.Header) (Conn, *http.Response, error)
	// Upgrade handshakes and upgrades websocket connection from server side
	Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header) (Conn, error)
}

Hub is the interface for websocket Hub that can be used to establish websocket connection

func NewWebsocketHub

func NewWebsocketHub() Hub

NewWebsocketHub creates a websocket Hub

type Stream

type Stream interface {
	// Start starts the stream
	Start() error
	// Write writes a message into the buffer
	Write(thrift.TStruct) error
	// Flush flushes out buffered messages
	Flush() error
	// Read reads and returns a message
	Read() (thrift.TStruct, error)
	// CloseWrite closes the write-path
	CloseWrite() error
	// Close shuts down read/write path and closes the underlying connection
	Close() error
}

Stream defines the interface for the "stream", that implements the shared functionality between the server and the client ends of the stream

func NewStream

func NewStream(conn Conn, opts *StreamOpts) Stream

NewStream initializes a new stream object

type StreamClient

type StreamClient interface {
	// Start starts the stream-client
	Start() error
	// Write writes a message into the write buffer
	Write(thrift.TStruct) error
	// Flush flushes out buffered messages
	Flush() error
	// Read reads and returns a message
	Read() (thrift.TStruct, error)
	// Done is used to indicate that the client is done
	Done() error
}

StreamClient defines the interface for the 'client' side of the stream

func NewStreamClient

func NewStreamClient(url string, requestHeader http.Header, dialer Dialer, readMsgType reflect.Type) StreamClient

NewStreamClient initializes a websocket-streaming client to the given url

type StreamOpts

type StreamOpts struct {
	// Server indicates whether the stream should be configured to behave
	// like the "server" end of the connection.
	Server bool

	// FlushThreshold is the number of messages to buffer before flushing automatically
	FlushThreshold int

	// PingInterval is the interval at which websocket ping-messages need to be sent; if
	// this is zero, pings will not be sent
	PingInterval time.Duration

	// readMsgType is the type of read-message
	ReadMsgType reflect.Type
}

StreamOpts are the options passed when creating the stream

type StreamServer

type StreamServer interface {
	// Start starts the stream-server
	Start() error
	// Write writes a message into the write buffer
	Write(msg thrift.TStruct) (err error)
	// Flush flushes out buffered messages
	Flush() (err error)
	// Read reads and returns a message
	Read() (msg thrift.TStruct, err error)
	// Done is used to indicate that the server is done
	Done() (err error)
}

StreamServer defines the interface for the 'server' side of the stream that batches responses/requests

func NewStreamServer

func NewStreamServer(httpRespWriter http.ResponseWriter, httpRequest *http.Request, upgrader Upgrader, readMsgType reflect.Type) StreamServer

NewStreamServer initializes a new websocket-streaming server

type Upgrader

type Upgrader interface {
	// Upgrade handshakes and upgrades websocket connection from server side
	Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header) (Conn, error)
}

Upgrader interface

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL