fiber_builder

package
v0.2.10-74 Latest Latest
Warning

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

Go to latest
Published: Nov 25, 2023 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CloseNormalClosure           = 1000
	CloseGoingAway               = 1001
	CloseProtocolError           = 1002
	CloseUnsupportedData         = 1003
	CloseNoStatusReceived        = 1005
	CloseAbnormalClosure         = 1006
	CloseInvalidFramePayloadData = 1007
	ClosePolicyViolation         = 1008
	CloseMessageTooBig           = 1009
	CloseMandatoryExtension      = 1010
	CloseInternalServerErr       = 1011
	CloseServiceRestart          = 1012
	CloseTryAgainLater           = 1013
	CloseTLSHandshake            = 1015
)

Close codes defined in RFC 6455, section 11.7.

View Source
const (
	// TextMessage denotes a text data message. The text message payload is
	// interpreted as UTF-8 encoded text data.
	TextMessage = 1

	// BinaryMessage denotes a binary data message.
	BinaryMessage = 2

	// CloseMessage denotes a close control message. The optional message
	// payload contains a numeric code and text. Use the FormatCloseMessage
	// function to format a close message payload.
	CloseMessage = 8

	// PingMessage denotes a ping control message. The optional message payload
	// is UTF-8 encoded text.
	PingMessage = 9

	// PongMessage denotes a pong control message. The optional message payload
	// is UTF-8 encoded text.
	PongMessage = 10
)

The message types are defined in RFC 6455, section 11.8.

Variables

View Source
var (
	ErrBadHandshake = errors.New("websocket: bad handshake")
	ErrCloseSent    = errors.New("websocket: close sent")
	ErrReadLimit    = errors.New("websocket: read limit exceeded")
)

Functions

func FormatCloseMessage

func FormatCloseMessage(closeCode int, text string) []byte

FormatCloseMessage formats closeCode and text as a WebSocket close message. An empty message is returned for code CloseNoStatusReceived.

func IsCloseError

func IsCloseError(err error, codes ...int) bool

IsCloseError returns boolean indicating whether the error is a *CloseError with one of the specified codes.

func IsUnexpectedCloseError

func IsUnexpectedCloseError(err error, expectedCodes ...int) bool

IsUnexpectedCloseError returns boolean indicating whether the error is a *CloseError with a code not in the list of expected codes.

func IsWebSocketUpgrade

func IsWebSocketUpgrade(c *fiber.Ctx) bool

IsWebSocketUpgrade returns true if the client requested upgrade to the WebSocket protocol.

func JoinMessages

func JoinMessages(c *websocket.Conn, term string) io.Reader

JoinMessages concatenates received messages to create a single io.Reader. The string term is appended to each message. The returned reader does not support concurrent calls to the Read method.

func NewWs

func NewWs(handler func(*fiber.Ctx, *Conn), config ...WsCfg) fiber.Handler

NewWs returns a new `handler func(*Conn)` that upgrades a client to the websocket protocol, you can pass an optional config.

Types

type Config added in v0.2.11

type Config struct {
	Prefork       bool   `yaml:"prefork"`
	ServerHeader  string `yaml:"server_header"`
	StrictRouting bool   `yaml:"strict_routing"`
	CaseSensitive bool   `yaml:"case_sensitive"`
	Immutable     bool   `yaml:"immutable"`
	UnescapePath  bool   `yaml:"unescape_path"`
	ETag          bool   `yaml:"etag"`
	BodyLimit     int    `yaml:"body_limit"`
	Concurrency   int    `yaml:"concurrency"`
	Templates     struct {
		Dir string `yaml:"dir"`
		Ext string `yaml:"ext"`
	} `yaml:"templates"`
	ReadTimeout               time.Duration `yaml:"read_timeout"`
	WriteTimeout              time.Duration `yaml:"write_timeout"`
	IdleTimeout               time.Duration `yaml:"idle_timeout"`
	ReadBufferSize            int           `yaml:"read_buffer_size"`
	WriteBufferSize           int           `yaml:"write_buffer_size"`
	CompressedFileSuffix      string        `yaml:"compressed_file_suffix"`
	ProxyHeader               string        `yaml:"proxy_header"`
	GETOnly                   bool          `yaml:"get_only"`
	DisableKeepalive          bool          `yaml:"disable_keepalive"`
	DisableDefaultDate        bool          `yaml:"disable_default_date"`
	DisableDefaultContentType bool          `yaml:"disable_default_content_type"`
	DisableHeaderNormalizing  bool          `yaml:"disable_header_normalizing"`
	DisableStartupMessage     bool          `yaml:"disable_startup_message"`
	ReduceMemoryUsage         bool          `yaml:"reduce_memory_usage"`
}

func (*Config) Build added in v0.2.11

func (t *Config) Build() (r result.Result[*fiber.App])

type Conn

type Conn struct {
	*websocket.Conn
	// contains filtered or unexported fields
}

Conn https://godoc.org/github.com/gorilla/websocket#pkg-index

func (*Conn) Cookies

func (conn *Conn) Cookies(key string, defaultValue ...string) string

Cookies is used for getting a cookie value by key Defaults to empty string "" if the cookie doesn't exist. If a default value is given, it will return that value if the cookie doesn't exist.

func (*Conn) Locals

func (conn *Conn) Locals(key string) interface{}

Locals makes it possible to pass interface{} values under string keys scoped to the request and therefore available to all following routes that match the request.

func (*Conn) Params

func (conn *Conn) Params(key string, defaultValue ...string) string

Params is used to get the route parameters. Defaults to empty string "" if the param doesn't exist. If a default value is given, it will return that value if the param doesn't exist.

func (*Conn) Query

func (conn *Conn) Query(key string, defaultValue ...string) string

Query returns the query string parameter in the url. Defaults to empty string "" if the query doesn't exist. If a default value is given, it will return that value if the query doesn't exist.

type WsCfg

type WsCfg struct {
	// Filter defines a function to skip middleware.
	// Optional. Default: nil
	Filter func(*fiber.Ctx) bool

	// HandshakeTimeout specifies the duration for the handshake to complete.
	HandshakeTimeout time.Duration

	// Subprotocols specifies the client's requested subprotocols.
	Subprotocols []string

	// Allowed Origin's based on the Origin header, this validate the request origin to
	// prevent cross-site request forgery. Everything is allowed if left empty.
	Origins []string

	// ReadBufferSize and WriteBufferSize specify I/O buffer sizes in bytes. If a buffer
	// size is zero, then a useful default size is used. The I/O buffer sizes
	// do not limit the size of the messages that can be sent or received.
	ReadBufferSize, WriteBufferSize int

	// EnableCompression specifies if the client should attempt to negotiate
	// per message compression (RFC 7692). Setting this value to true does not
	// guarantee that compression will be supported. Currently only "no context
	// takeover" modes are supported.
	EnableCompression bool
}

WsCfg ...

Jump to

Keyboard shortcuts

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