Documentation
¶
Index ¶
- Variables
- func IsGobTypeRegistered[MessageType any]() (registered bool)
- func RegisterGobType[MessageType any](sample MessageType) (err error)
- type Client
- func (client *Client) Close() (err error)
- func (client *Client) Connect() (err error)
- func (client *Client) LocalAddr() (addr net.Addr)
- func (client *Client) Metadata() (metadata map[string]any)
- func (client *Client) OnClose(handler CloseHandler)
- func (client *Client) OnError(handler ErrorHandler)
- func (client *Client) OnMessage(handler MessageHandler)
- func (client *Client) RemoteAddr() (addr net.Addr)
- func (client *Client) Send(message []byte) (err error)
- func (client *Client) Use(middleware ...Middleware)
- type ClientConfig
- type ClientHandler
- type CloseHandler
- type ErrorHandler
- type GobClient
- func (client *GobClient[MessageType]) Connect() (err error)
- func (client *GobClient[MessageType]) OnMessage(handler GobMessageHandler[MessageType])
- func (client *GobClient[MessageType]) Send(message MessageType) (err error)
- func (client *GobClient[MessageType]) Use(middleware ...GobMiddleware[MessageType])
- type GobClientHandler
- type GobMessageContext
- type GobMessageHandler
- type GobMiddleware
- type GobNext
- type GobServer
- type GobServerClient
- type MessageContext
- type MessageHandler
- type Middleware
- type Next
- type Protocol
- type Server
- func (server *Server) AddWebSocketSidecar(sidecar *WebSocketServer) (err error)
- func (server *Server) Addr() (addr net.Addr)
- func (server *Server) Close() (err error)
- func (server *Server) Listen() (err error)
- func (server *Server) OnClient(handler ClientHandler)
- func (server *Server) OnClose(handler CloseHandler)
- func (server *Server) OnError(handler ErrorHandler)
- type ServerClient
- type ServerConfig
- type WebSocketServer
- type WebSocketServerConfig
Constants ¶
This section is empty.
Variables ¶
var ( ErrProtocolUnsupported error = errors.New("arctic: protocol is not supported") ErrClientNotConnected error = errors.New("arctic: client is not connected") ErrServerAlreadyListening error = errors.New("arctic: server is already listening") ErrEndpointInUse error = errors.New("arctic: endpoint is already in use") ErrSidecarAlreadyAttached error = errors.New("arctic: websocket sidecar is already attached") ErrMessageTooLarge error = errors.New("arctic: message exceeds configured buffer size") ErrMetadataInvalid error = errors.New("arctic: metadata is invalid") ErrGobTypeInvalid error = errors.New("arctic: gob message type must be a struct") ErrGobTypeNotRegistered error = errors.New("arctic: gob message type is not registered") ErrGobTypeRegistrationFailed error = errors.New("arctic: gob message type registration failed") )
Functions ¶
func IsGobTypeRegistered ¶
IsGobTypeRegistered reports whether a Gob message type is registered.
func RegisterGobType ¶
RegisterGobType registers a struct type for Arctic Gob clients and servers.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
func NewClient(config ClientConfig) (client *Client, err error)
NewClient creates a raw client for the configured transport.
func (*Client) Connect ¶
Connect opens the client's configured transport and starts receiving messages.
func (*Client) OnClose ¶
func (client *Client) OnClose(handler CloseHandler)
OnClose sets the client's close handler.
func (*Client) OnError ¶
func (client *Client) OnError(handler ErrorHandler)
OnError sets the client's asynchronous error handler.
func (*Client) OnMessage ¶
func (client *Client) OnMessage(handler MessageHandler)
OnMessage sets the client's raw message handler.
func (*Client) RemoteAddr ¶
RemoteAddr returns the remote transport address when connected.
func (*Client) Use ¶
func (client *Client) Use(middleware ...Middleware)
Use appends middleware to the client's raw message pipeline.
type ClientConfig ¶
type ClientHandler ¶
type ClientHandler func(*ServerClient)
type CloseHandler ¶
type CloseHandler func()
type ErrorHandler ¶
type ErrorHandler func(error)
type GobClient ¶
func NewGobClient ¶
func NewGobClient[MessageType any](config ClientConfig) (client *GobClient[MessageType], err error)
NewGobClient creates a typed Gob client for the configured transport.
func (*GobClient[MessageType]) Connect ¶
func (client *GobClient[MessageType]) Connect() (err error)
Connect opens the typed client's transport and starts decoding messages.
func (*GobClient[MessageType]) OnMessage ¶
func (client *GobClient[MessageType]) OnMessage(handler GobMessageHandler[MessageType])
OnMessage sets the typed message handler.
type GobClientHandler ¶
type GobClientHandler[MessageType any] func(*GobServerClient[MessageType])
type GobMessageContext ¶
type GobMessageContext[MessageType any] struct { Client *GobClient[MessageType] Message MessageType }
type GobMessageHandler ¶
type GobMessageHandler[MessageType any] func(MessageType)
type GobMiddleware ¶
type GobServer ¶
func NewGobServer ¶
func NewGobServer[MessageType any](config ServerConfig) (server *GobServer[MessageType], err error)
NewGobServer creates a typed Gob server.
func (*GobServer[MessageType]) Close ¶
func (server *GobServer[MessageType]) Close() (err error)
Close stops the typed server and clears its client registry.
type GobServerClient ¶
type MessageContext ¶
type MessageHandler ¶
type MessageHandler func([]byte)
type Middleware ¶
type Middleware func(*MessageContext, Next) error
type Next ¶
type Next func(*MessageContext) error
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func NewServer ¶
func NewServer(config ServerConfig) (server *Server, err error)
NewServer creates a TCP or UDP server.
func (*Server) AddWebSocketSidecar ¶ added in v0.0.2
func (server *Server) AddWebSocketSidecar(sidecar *WebSocketServer) (err error)
AddWebSocketSidecar attaches a WebSocket listener to the server's lifecycle.
func (*Server) OnClient ¶
func (server *Server) OnClient(handler ClientHandler)
OnClient sets the handler invoked for newly discovered clients.
func (*Server) OnClose ¶
func (server *Server) OnClose(handler CloseHandler)
OnClose sets the server shutdown handler.
func (*Server) OnError ¶
func (server *Server) OnError(handler ErrorHandler)
OnError sets the server's asynchronous error handler.
type ServerClient ¶
type ServerClient struct {
*Client
// contains filtered or unexported fields
}
func (*ServerClient) ID ¶
func (serverClient *ServerClient) ID() (id int)
ID returns the server-assigned client identifier.
type ServerConfig ¶
type WebSocketServer ¶ added in v0.0.2
type WebSocketServer struct {
// contains filtered or unexported fields
}
func NewWebSocketServer ¶ added in v0.0.2
func NewWebSocketServer(config WebSocketServerConfig) (server *WebSocketServer, err error)
NewWebSocketServer creates a sidecar that can be attached to an Arctic server.
func (*WebSocketServer) Addr ¶ added in v0.0.2
func (server *WebSocketServer) Addr() (addr net.Addr)
Addr returns the bound address after the sidecar starts listening.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
examples
|
|
|
gob_basic
command
|
|
|
metadata_basic
command
|
|
|
tcp_basic
command
|
|
|
udp_basic
command
|
|
|
websocket_browser
command
|
|
|
websocket_native
command
|
|
|
tests
|
|