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 ...