router

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrCallbackNotRegistered = errors.New("callback type not registered")
	ErrMessageNotRegistered  = errors.New("message type is not registered")
)

Functions

func Broadcast

func Broadcast(msg any) error

func CallConnect

func CallConnect(sender *websocket.Conn)

func CallDisconnect

func CallDisconnect(sender *websocket.Conn, err error)

func CallError

func CallError(sender *websocket.Conn, err error)

func CallProcessMessage

func CallProcessMessage(sender *websocket.Conn, msg []byte) error

func GetId added in v0.0.3

func GetId(conn *websocket.Conn) string

func On

func On[T any](callback func(sender *NetworkClient, message T))

On adds a callback to be called whenever the specified message type T is received. Note: sender will be nil in client callbacks. This can return an error if the type id is reserved or already in use.

func OnConnect

func OnConnect(callback func(sender *NetworkClient))

OnConnect adds a callback to call whenever a session connects to the server. Note: sender will be nil in client callbacks.

func OnDisconnect

func OnDisconnect(callback func(sender *NetworkClient, err error))

OnDisconnect adds a callback to call whenever a session disconnects from the server. Note: sender will be nil in client callbacks.

func OnError

func OnError(callback func(sender *NetworkClient, err error))

OnError adds a callback to call whenever a message error occurs. Note: sender will be nil in client callbacks.

func ProcessMessage

func ProcessMessage(sender *NetworkClient, msg []byte) error

ProcessMessage deserializes a byte message and calls its registered callbacks.

func ResetRouter

func ResetRouter()

func Serialize

func Serialize(msg any) ([]byte, error)

Types

type NetworkClient

type NetworkClient struct {
	*websocket.Conn
	// contains filtered or unexported fields
}

func Client

func Client(conn *websocket.Conn) *NetworkClient

func NewNetworkClient

func NewNetworkClient(ctx context.Context, underlying *websocket.Conn) *NetworkClient

func Peers

func Peers() []*NetworkClient

Peers returns a new slice of NetworkClient pointers from the underlying map. Use PeerMap if you are able to as this avoids this kind of duplication.

func (*NetworkClient) Id

func (c *NetworkClient) Id() string

func (*NetworkClient) SendMessage

func (c *NetworkClient) SendMessage(msg any) error

func (*NetworkClient) SendMessageBytes

func (c *NetworkClient) SendMessageBytes(msgBytes []byte) error

Jump to

Keyboard shortcuts

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