Versions in this module Expand all Collapse all v1 v1.0.1 Aug 22, 2026 Changes in this version type Options + WriteReadLimit int64 v1.0.0 Aug 19, 2026 v0 v0.1.0 Aug 5, 2026 Changes in this version + const InternalError + const InvalidOrExpired + const InvalidParams + const InvalidRequest + const MethodNotFound + const NotAuthorized + const ParseError + const UnAuthorized + var StdError = map[int]string + type AuthParams struct + Password string + Token string + Username string + type AuthResult struct + Status string + Token string + Username string + type DummyAuthenticator struct + func (d *DummyAuthenticator) Authenticate(ctx context.Context, username, password string) bool + type JsonRPCerror struct + Code int + Data any + Message string + func NewRPCErrorFromNexError(code int, err *errors.Error) *JsonRPCerror + type JsonRPChandler func(p *Peer, req JsonRPCrequest) (any, *JsonRPCerror) + type JsonRPCrequest struct + ID json.RawMessage + JSONRPC string + Method string + Params json.RawMessage + func (req *JsonRPCrequest) IsResponse() bool + func (req *JsonRPCrequest) UnmarshalParams(v any) error + type JsonRPCresponse struct + Error *JsonRPCerror + ID json.RawMessage + JSONRPC string + Method string + Result any + type ManagedClient struct + func NewManagedClient(node *Node, targetURL string, cfg ReconnectConfig) *ManagedClient + func (mc *ManagedClient) Call(ctx context.Context, method string, params any, resultTarget any) *JsonRPCerror + func (mc *ManagedClient) Close() + func (mc *ManagedClient) GetPeer() *Peer + func (mc *ManagedClient) IsClosed() bool + func (mc *ManagedClient) IsReady() bool + func (mc *ManagedClient) SetCredentials(username, password string) + func (mc *ManagedClient) Start() + type Node struct + func NewNode(opts Options) *Node + func (n *Node) Broadcast(method string, params any) + func (n *Node) BroadcastAuthorized(method string, params any) + func (n *Node) BroadcastFilter(method string, params any, filter PeerFilter) + func (n *Node) BroadcastToUsers(method string, params any, usernames []string) + func (n *Node) ConnectToPeer(targetURL string) (*Peer, error) + func (n *Node) ConnectWithAutoReconnect(targetURL string, cfg ReconnectConfig) *ManagedClient + func (n *Node) RegisterHandler(method string, h JsonRPChandler) + func (n *Node) SetAuthenticator(auth UserAuthenticator) + func (n *Node) Start() error + func (n *Node) Stop() error + type Options struct + Addr string + HeartbeatInterval time.Duration + ShutdownDelay time.Duration + type Peer struct + ID string + Role PeerRole + func NewPeer(conn *websocket.Conn, remoteAddr string) *Peer + func (p *Peer) Call(ctx context.Context, method string, params any, resultTarget any) *JsonRPCerror + func (p *Peer) Close() + func (p *Peer) IsAuthorized() bool + func (p *Peer) Notify(method string, params any) error + func (p *Peer) RemoteAddr() string + func (p *Peer) Send(msg any) + func (p *Peer) SetAuth(username, token string, ttl time.Duration) + func (p *Peer) Start() + func (p *Peer) Username() string + type PeerFilter func(p *Peer) bool + type PeerRole int + const RoleInbound + const RoleOutbound + type ReconnectConfig struct + InitialInterval time.Duration + MaxInterval time.Duration + MaxRetries int + Multiplier float64 + type Router struct + func (r *Router) RegisterHandler(method string, h JsonRPChandler) + func (r *Router) SetAuthenticator(auth UserAuthenticator) + type SessionData struct + Expires time.Time + Username string + type UserAuthenticator interface + Authenticate func(ctx context.Context, username, password string) bool