Documentation ¶
Index ¶
- Constants
- Variables
- func Broadcast(message []byte, mType ...int)
- func EmitTo(uuid string, message []byte, mType ...int) error
- func EmitToList(uuids []string, message []byte, mType ...int)
- func Fire(event string, data []byte)
- func New(callback func(kws *Websocket)) func(*fiber.Ctx) error
- func On(event string, callback eventCallback)
- type EventPayload
- type Websocket
- func (kws *Websocket) Broadcast(message []byte, except bool, mType ...int)
- func (kws *Websocket) Close()
- func (kws *Websocket) Emit(message []byte, mType ...int)
- func (kws *Websocket) EmitTo(uuid string, message []byte, mType ...int) error
- func (kws *Websocket) EmitToList(uuids []string, message []byte, mType ...int)
- func (kws *Websocket) Fire(event string, data []byte)
- func (kws *Websocket) GetAttribute(key string) interface{}
- func (kws *Websocket) GetIntAttribute(key string) int
- func (kws *Websocket) GetStringAttribute(key string) string
- func (kws *Websocket) GetUUID() string
- func (kws *Websocket) IsAlive() bool
- func (kws *Websocket) SetAttribute(key string, attribute interface{})
- func (kws *Websocket) SetUUID(uuid string)
Constants ¶
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 )
Source @url:https://github.com/gorilla/websocket/blob/master/conn.go#L61 The message types are defined in RFC 6455, section 11.8.
const ( // EventMessage Fired when a Text/Binary message is received EventMessage = "message" // EventPing More details here: // @url https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#Pings_and_Pongs_The_Heartbeat_of_WebSockets EventPing = "ping" EventPong = "pong" // EventDisconnect Fired on disconnection // The error provided in disconnection event // is defined in RFC 6455, section 11.7. // @url https://github.com/gofiber/websocket/blob/cd4720c435de415b864d975a9ca23a47eaf081ef/websocket.go#L192 EventDisconnect = "disconnect" // EventConnect Fired on first connection EventConnect = "connect" // EventClose Fired when the connection is actively closed from the server EventClose = "close" // EventError Fired when some error appears useful also for debugging websockets EventError = "error" )
Supported event list
Variables ¶
var ( // ErrorInvalidConnection The addressed Conn connection is not available anymore // error data is the uuid of that connection ErrorInvalidConnection = errors.New("message cannot be delivered invalid/gone connection") // ErrorUUIDDuplication The UUID already exists in the pool ErrorUUIDDuplication = errors.New("UUID already exists in the available connections pool") )
var ( PongTimeout = 1 * time.Second // RetrySendTimeout retry after 20 ms if there is an error RetrySendTimeout = 20 * time.Millisecond //MaxSendRetry define max retries if there are socket issues MaxSendRetry = 5 // ReadTimeout Instead of reading in a for loop, try to avoid full CPU load taking some pause ReadTimeout = 10 * time.Millisecond )
Functions ¶
func EmitToList ¶
EmitToList Emit the message to a specific socket uuids list Ignores all errors
Types ¶
type EventPayload ¶
type EventPayload struct { // The connection object Kws *Websocket // The name of the event Name string // Unique connection UUID SocketUUID string // Optional websocket attributes SocketAttributes map[string]interface{} // Optional error when are fired events like // - Disconnect // - Error Error error // Data is used on Message and on Error event Data []byte }
EventPayload Event Payload is the object that stores all the information about the event and the connection
type Websocket ¶
type Websocket struct { // The Fiber.Websocket connection Conn *websocket.Conn // Unique id of the connection UUID string // Wrap Fiber Locals function Locals func(key string) interface{} // Wrap Fiber Params function Params func(key string, defaultValue ...string) string // Wrap Fiber Query function Query func(key string, defaultValue ...string) string // Wrap Fiber Cookies function Cookies func(key string, defaultValue ...string) string // contains filtered or unexported fields }
func (*Websocket) Broadcast ¶
Broadcast to all the active connections except avoid broadcasting the message to itself
func (*Websocket) Close ¶
func (kws *Websocket) Close()
Close Actively close the connection from the server
func (*Websocket) EmitToList ¶
EmitToList Emit the message to a specific socket uuids list
func (*Websocket) GetAttribute ¶
GetAttribute Get a specific attribute from the socket attributes
func (*Websocket) GetIntAttribute ¶
GetIntAttribute Convenience method to retrieve an attribute as an int. Will panic if attribute is not an int.
func (*Websocket) GetStringAttribute ¶
GetStringAttribute Convenience method to retrieve an attribute as a string. Will panic if attribute is not an int.
func (*Websocket) SetAttribute ¶
SetAttribute Set a specific attribute for the specific socket connection