websocket

package
v1.7.3-0...-caeaf44 Latest Latest
Warning

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

Go to latest
Published: Aug 12, 2026 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

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

Jump to

Keyboard shortcuts

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