Documentation
¶
Index ¶
- func SetInstance(instance *WebsocketServer)
- type RegisterResponse
- type WebSocketRequest
- type WebsocketServer
- func (ws *WebsocketServer) AddConnection(conn *websocket.Conn)
- func (ws *WebsocketServer) AddTestConnection(address string)
- func (ws *WebsocketServer) BroadcastModuleUpdate(module types.Module, addr *string)
- func (ws *WebsocketServer) ConnectionExists(address string) bool
- func (ws *WebsocketServer) HandleConnection(w http.ResponseWriter, r *http.Request) (*websocket.Conn, error)
- func (ws *WebsocketServer) RegisterDataListener(addr string, modules []types.ModuleName) RegisterResponse
- func (ws *WebsocketServer) RemoveConnection(conn *websocket.Conn)
- func (ws *WebsocketServer) RemoveTestConnection(address string)
- func (ws *WebsocketServer) SendError(conn *websocket.Conn, req WebSocketRequest, subtype event.ResponseSubtype, ...)
- func (ws *WebsocketServer) SendMessage(connInfo *connectionInfo, message event.MessageResponse)
- func (ws *WebsocketServer) SendMessageToAddress(address string, message event.MessageResponse) bool
- func (ws *WebsocketServer) SendMessageWithLock(connInfo *connectionInfo, message event.MessageResponse, lockHeld bool)
- func (ws *WebsocketServer) UnregisterDataListener(addr string)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetInstance ¶
func SetInstance(instance *WebsocketServer)
SetInstance sets the global WebSocket server instance
Types ¶
type RegisterResponse ¶
type RegisterResponse int
const ( RegisterResponseAdded RegisterResponse = 1 RegisterResponseExists RegisterResponse = 2 )
type WebSocketRequest ¶
type WebSocketRequest struct {
// event.Message fields
ID string `json:"id" mapstructure:"id"`
Event string `json:"event" mapstructure:"event"`
Data any `json:"data" mapstructure:"data"`
// WebSocketRequest fields
Token string `json:"token" mapstructure:"token"`
}
WebSocketRequest represents the structure of messages sent over the WebSocket Extends event.Message to include a token
type WebsocketServer ¶
type WebsocketServer struct {
EventRouter *event.MessageRouter
// contains filtered or unexported fields
}
func GetInstance ¶
func GetInstance() *WebsocketServer
GetInstance returns the global WebSocket server instance
func NewWebsocketServer ¶
func NewWebsocketServer(token string, dataStore *data.DataStore, eventRouter *event.MessageRouter) *WebsocketServer
func (*WebsocketServer) AddConnection ¶
func (ws *WebsocketServer) AddConnection(conn *websocket.Conn)
AddConnection adds a new WebSocket connection
func (*WebsocketServer) AddTestConnection ¶
func (ws *WebsocketServer) AddTestConnection(address string)
AddTestConnection registers a test connection for unit testing purposes
func (*WebsocketServer) BroadcastModuleUpdate ¶
func (ws *WebsocketServer) BroadcastModuleUpdate(module types.Module, addr *string)
BroadcastModuleUpdate sends a module data update to all connected clients
func (*WebsocketServer) ConnectionExists ¶
func (ws *WebsocketServer) ConnectionExists(address string) bool
func (*WebsocketServer) HandleConnection ¶
func (ws *WebsocketServer) HandleConnection(w http.ResponseWriter, r *http.Request) (*websocket.Conn, error)
func (*WebsocketServer) RegisterDataListener ¶
func (ws *WebsocketServer) RegisterDataListener(addr string, modules []types.ModuleName) RegisterResponse
RegisterDataListener allows a client to receive module data updates
func (*WebsocketServer) RemoveConnection ¶
func (ws *WebsocketServer) RemoveConnection(conn *websocket.Conn)
RemoveConnection removes a WebSocket connection
func (*WebsocketServer) RemoveTestConnection ¶
func (ws *WebsocketServer) RemoveTestConnection(address string)
RemoveTestConnection removes a test connection by address
func (*WebsocketServer) SendError ¶
func (ws *WebsocketServer) SendError(conn *websocket.Conn, req WebSocketRequest, subtype event.ResponseSubtype, message string)
func (*WebsocketServer) SendMessage ¶
func (ws *WebsocketServer) SendMessage(connInfo *connectionInfo, message event.MessageResponse)
func (*WebsocketServer) SendMessageToAddress ¶
func (ws *WebsocketServer) SendMessageToAddress(address string, message event.MessageResponse) bool
func (*WebsocketServer) SendMessageWithLock ¶
func (ws *WebsocketServer) SendMessageWithLock(connInfo *connectionInfo, message event.MessageResponse, lockHeld bool)
func (*WebsocketServer) UnregisterDataListener ¶
func (ws *WebsocketServer) UnregisterDataListener(addr string)
UnregisterDataListener allows a client to stop receiving module data updates