types

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Nov 10, 2023 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client interface {
	Connection() *websocket.Conn
	Manager() Manager
	Egress() chan Event

	GetClientID() string

	GetSession() string
	SetSession(string)

	PongHandler(string) error
	ReadMessages()
	WriteMessages()
}

type ClientRepo

type ClientRepo interface {
	GetAllClients() []Client
	AddClient(Client) error
	ClientExists(Client) (error, bool)
	DeleteClient(Client) error
	GetClient(string) Client
}

type Event

type Event struct {
	Type    EventType       `json:"type"`
	Payload json.RawMessage `json:"payload"`
}

type EventHandler

type EventHandler func(Event, Client) error

type EventRouter

type EventRouter interface {
	Route(event Event, client Client) error
	Handle(eventType EventType, eventHandler EventHandler) EventRouter
	Handlers() map[EventType]EventHandler
}

type EventType

type EventType string

type Manager

type Manager interface {
	Clients() ClientRepo
	EventRouter() EventRouter
	WebsocketUpgrader() *websocket.Upgrader

	AddClient(Client) error
	RemoveClient(Client)
}

Jump to

Keyboard shortcuts

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