bfe_websocket

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2021 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	WebSocket = "websocket"
)

Variables

This section is empty.

Functions

func CheckAcceptWebSocket

func CheckAcceptWebSocket(rsp *http.Response) bool

CheckAcceptWebSocket checks whether server accept WebSocket protocol.

func CheckUpgradeWebSocket

func CheckUpgradeWebSocket(req *http.Request) bool

CheckUpgradeWebSocket checks whether client request for WebSocket protocol.

func NewProtoHandler

func NewProtoHandler(conf *Server) func(*http.Server, http.ResponseWriter, *http.Request)

NewProtoHandler returns protocol handler for websocket.

func Scheme

func Scheme(c net.Conn) string

Scheme returns scheme of current websocket conn.

Types

type BalanceHandler

type BalanceHandler func(req interface{}) (*backend.BfeBackend, error)

BalanceHandler selects backend for current conn.

type HandlerMap

type HandlerMap map[string]http.Handler

type MockResponseWriter

type MockResponseWriter struct {
	// contains filtered or unexported fields
}

func NewMockResponseWriter

func NewMockResponseWriter(conn net.Conn, brw *bfe_bufio.ReadWriter) *MockResponseWriter

func (*MockResponseWriter) Flush

func (rw *MockResponseWriter) Flush() error

func (*MockResponseWriter) Header

func (rw *MockResponseWriter) Header() bfe_http.Header

Header returns the header map that will be sent by WriteHeader. Changing the header after a call to WriteHeader (or Write) has no effect.

func (*MockResponseWriter) Hijack

func (rw *MockResponseWriter) Hijack() (rwc net.Conn, buf *bfe_bufio.ReadWriter, err error)

func (*MockResponseWriter) Write

func (rw *MockResponseWriter) Write(data []byte) (int, error)

Write writes the data to the connection as part of an HTTP reply.

func (*MockResponseWriter) WriteHeader

func (rw *MockResponseWriter) WriteHeader(code int)

WriteHeader sends an HTTP response header with status code.

type Server

type Server struct {
	// ConnectTimeout optionally specifies the timeout value (ms) to
	// connect backend. If zero, a default value is used.
	ConnectTimeout int

	// ConnectRetryMax optionally specifies the upper limit of connect
	// retris. If zero, a default value is used
	ConnectRetryMax int

	// BalanceHandler optionally specifies the handler for backends balance
	// BalanceHandler should not be nil.
	BalanceHandler BalanceHandler
}

type ServerTester

type ServerTester struct {
	// contains filtered or unexported fields
}

func NewServerTester

func NewServerTester(t testing.TB, h HandlerMap, c *Server) *ServerTester

func (*ServerTester) Close

func (st *ServerTester) Close()

func (*ServerTester) Read

func (st *ServerTester) Read(buf []byte) error

Read reads until timeout (client perspective)

func (*ServerTester) WantError

func (st *ServerTester) WantError(e string)

WantError read and check error (client perspective)

func (*ServerTester) WebSocketHandshake

func (st *ServerTester) WebSocketHandshake(c *websocket.Config) error

WebSocketHandshake starts websocket handshake (client perspective)

func (*ServerTester) WebSocketRead

func (st *ServerTester) WebSocketRead(msg []byte) (int, error)

WebSocketRead recv websocket message (client perspective)

func (*ServerTester) WebSocketWrite

func (st *ServerTester) WebSocketWrite(data []byte) (int, error)

WebSocketWrite sends webscoket message (client perspective)

func (*ServerTester) Write

func (st *ServerTester) Write(data []byte) error

Write writes raw data (client perspective)

type WebSocketState

type WebSocketState struct {
	WebSocketErrBalance       *metrics.Counter
	WebSocketErrConnect       *metrics.Counter
	WebSocketErrProxy         *metrics.Counter
	WebSocketErrHandshake     *metrics.Counter
	WebSocketErrBackendReject *metrics.Counter
	WebSocketErrTransfer      *metrics.Counter
	WebSocketPanicConn        *metrics.Counter
	WebSocketBytesRecv        *metrics.Counter
	WebSocketBytesSent        *metrics.Counter
}

WebSocketState is internal state for WebSocket.

func GetWebSocketState

func GetWebSocketState() *WebSocketState

GetWebSocketState returns internal state for WebSocket.

Jump to

Keyboard shortcuts

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