Documentation ¶
Index ¶
- Constants
- Variables
- func FormatCloseMessage(closeCode int, text string) []byte
- func IsCloseError(err error, codes ...int) bool
- func IsUnexpectedCloseError(err error, expectedCodes ...int) bool
- func IsWebSocketUpgrade(c *fiber.Ctx) bool
- func JoinMessages(c *websocket.Conn, term string) io.Reader
- func NewWs(handler func(*fiber.Ctx, *Conn), config ...WsCfg) fiber.Handler
- type Builder
- type Cfg
- type Conn
- type Ctx
- type Route
- type Router
- type WsCfg
Constants ¶
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.
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 ¶
Functions ¶
func FormatCloseMessage ¶
FormatCloseMessage formats closeCode and text as a WebSocket close message. An empty message is returned for code CloseNoStatusReceived.
func IsCloseError ¶
IsCloseError returns boolean indicating whether the error is a *CloseError with one of the specified codes.
func IsUnexpectedCloseError ¶
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 ¶
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.
Types ¶
type Cfg ¶
type Cfg struct { Prefork bool `json:"prefork"` ServerHeader string `json:"server_header"` StrictRouting bool `json:"strict_routing"` CaseSensitive bool `json:"case_sensitive"` Immutable bool `json:"immutable"` UnescapePath bool `json:"unescape_path"` ETag bool `json:"etag"` BodyLimit int `json:"body_limit"` Concurrency int `json:"concurrency"` Templates struct { Dir string `json:"dir"` Ext string `json:"ext"` } `json:"templates"` ReadTimeout time.Duration `json:"read_timeout"` WriteTimeout time.Duration `json:"write_timeout"` IdleTimeout time.Duration `json:"idle_timeout"` ReadBufferSize int `json:"read_buffer_size"` WriteBufferSize int `json:"write_buffer_size"` CompressedFileSuffix string `json:"compressed_file_suffix"` ProxyHeader string `json:"proxy_header"` GETOnly bool `json:"get_only"` DisableKeepalive bool `json:"disable_keepalive"` DisableDefaultDate bool `json:"disable_default_date"` DisableDefaultContentType bool `json:"disable_default_content_type"` DisableHeaderNormalizing bool `json:"disable_header_normalizing"` DisableStartupMessage bool `json:"disable_startup_message"` ReduceMemoryUsage bool `json:"reduce_memory_usage"` Websocket *WsCfg `json:"websocket" yaml:"websocket"` }
type Conn ¶
Conn https://godoc.org/github.com/gorilla/websocket#pkg-index
func (*Conn) Cookies ¶
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 ¶
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.
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 ...