Versions in this module Expand all Collapse all v3 v3.1.0 Oct 11, 2022 Changes in this version + var DefaultGatewayOpts = GatewayOpts + var EnableRawEvents = false + var ErrWebsocketClosed = errors.New("websocket is closed") + var WSDebug = func(v ...interface{}) + var WSError = func(err error) + func IsUnknownEvent(err error) bool + func NewDialLimiter() *rate.Limiter + func NewGlobalIdentityLimiter() *rate.Limiter + func NewIdentityLimiter() *rate.Limiter + func NewSendLimiter() *rate.Limiter + type BackgroundErrorEvent struct + Err error + func (err *BackgroundErrorEvent) Error() string + func (err *BackgroundErrorEvent) EventType() EventType + func (err *BackgroundErrorEvent) Op() OpCode + func (err *BackgroundErrorEvent) Unwrap() error + type Broadcaster struct + func NewBroadcaster(src <-chan Op) *Broadcaster + func (b *Broadcaster) NewSubscribed() <-chan Op + func (b *Broadcaster) Start() + func (b *Broadcaster) Subscribe(ch chan<- Op) + type CloseEvent struct + Code int + Err error + func (e *CloseEvent) Error() string + func (e *CloseEvent) EventType() EventType + func (e *CloseEvent) Op() OpCode + func (e *CloseEvent) Unwrap() error + type Codec struct + Headers http.Header + Unmarshalers OpUnmarshalers + func NewCodec(unmarshalers OpUnmarshalers) Codec + func (c Codec) DecodeInto(ctx context.Context, r io.Reader, buf *DecodeBuffer, out chan<- Op) error + type Conn struct + CloseTimeout time.Duration + func NewConn(codec Codec) *Conn + func NewConnWithDialer(codec Codec, dialer websocket.Dialer) *Conn + func (c *Conn) Close(gracefully bool) error + func (c *Conn) Dial(ctx context.Context, addr string) (<-chan Op, error) + func (c *Conn) Send(ctx context.Context, b []byte) error + type Connection interface + Close func(gracefully bool) error + Dial func(context.Context, string) (<-chan Op, error) + Send func(context.Context, []byte) error + type ConnectionError struct + Err error + func (err ConnectionError) Error() string + func (err ConnectionError) Unwrap() error + type DecodeBuffer struct + func NewDecodeBuffer(cap int) DecodeBuffer + type Event interface + EventType func() EventType + Op func() OpCode + type EventType string + type Gateway struct + func NewGateway(ws *Websocket, opts *GatewayOpts) *Gateway + func (g *Gateway) AssertIsNotRunning() + func (g *Gateway) Connect(ctx context.Context, h Handler) <-chan Op + func (g *Gateway) HasStarted() bool + func (g *Gateway) LastError() error + func (g *Gateway) QueueReconnect() + func (g *Gateway) ResetHeartbeat(d time.Duration) + func (g *Gateway) Send(ctx context.Context, data Event) error + func (g *Gateway) SendError(err error) + func (g *Gateway) SendErrorWrap(err error, message string) + type GatewayOpts struct + AlwaysCloseGracefully bool + DialTimeout time.Duration + FatalCloseCodes []int + ReconnectAttempt int + ReconnectDelay func(try int) time.Duration + type Handler interface + Close func() error + OnOp func(context.Context, Op) (canContinue bool) + SendHeartbeat func(context.Context) + type Op struct + Code OpCode + Data Event + Sequence int64 + Type EventType + func ReadOp(ctx context.Context, ch <-chan Op) (Op, error) + func ReadOps(ctx context.Context, ch <-chan Op, n int) ([]Op, error) + type OpCode int + type OpFunc func() Event + type OpUnmarshalers struct + func NewOpUnmarshalers(funcs ...OpFunc) OpUnmarshalers + func (m OpUnmarshalers) Add(funcs ...OpFunc) + func (m OpUnmarshalers) Each(f func(OpCode, EventType, OpFunc) (done bool)) + func (m OpUnmarshalers) Lookup(op OpCode, t EventType) OpFunc + type RawEvent struct + OriginalCode OpCode + OriginalType EventType + func (e *RawEvent) EventType() EventType + func (e *RawEvent) Op() OpCode + type UnknownEventError struct + Op OpCode + Type EventType + func (err UnknownEventError) Error() string + type Websocket struct + func NewCustomWebsocket(conn Connection, addr string) *Websocket + func NewWebsocket(c Codec, addr string) *Websocket + func (ws *Websocket) Close() error + func (ws *Websocket) CloseGracefully() error + func (ws *Websocket) Dial(ctx context.Context) (<-chan Op, error) + func (ws *Websocket) Send(ctx context.Context, b []byte) error