Versions in this module Expand all Collapse all v0 v0.9.0 May 24, 2020 Changes in this version + const CopyBufferSize + var CloseDeadline = time.Second + var ErrEmptyPayload = errors.New("empty payload") + var ErrWebsocketClosed = errors.New("websocket is closed") + var WSBuffer = 10 + var WSDebug = func(v ...interface{}) + var WSError = func(err error) + var WSExtraReadTimeout = time.Second + var WSTimeout = time.Minute + func HandleEvent(h EventHandler, ev Event) error + func InjectValues(rawurl string, values url.Values) string + func NewDialLimiter() *rate.Limiter + func NewGlobalIdentityLimiter() *rate.Limiter + func NewIdentityLimiter() *rate.Limiter + func NewSendLimiter() *rate.Limiter + func WaitForEvent(h EventHandler, ch <-chan Event, fn func(*OP) bool) error + type Conn struct + Conn *websocket.Conn + func NewConn() *Conn + func NewConnWithDriver(driver json.Driver) *Conn + func (c *Conn) Close() (err error) + func (c *Conn) Dial(ctx context.Context, addr string) error + func (c *Conn) Listen() <-chan Event + func (c *Conn) Send(ctx context.Context, b []byte) error + type Connection interface + Close func() error + Dial func(context.Context, string) error + Listen func() <-chan Event + Send func(context.Context, []byte) error + type Event struct + Data []byte + Error error + type EventHandler interface + HandleOP func(op *OP) error + type EventLoop interface + HandleOP func(*OP) error + Heartbeat func() error + type ExtraHandler struct + Check func(*OP) bool + type ExtraHandlers struct + func (ex *ExtraHandlers) Add(check func(*OP) bool) (<-chan *OP, func()) + func (ex *ExtraHandlers) Check(op *OP) + type OP struct + Code OPCode + Data json.Raw + EventName string + Sequence int64 + func AssertEvent(ev Event, code OPCode, v interface{}) (*OP, error) + func DecodeOP(ev Event) (*OP, error) + func (op *OP) UnmarshalData(v interface{}) error + type OPCode uint8 + type PacemakerLoop struct + ErrorLog func(error) + Extras ExtraHandlers + func NewLoop(heartrate time.Duration, evs <-chan Event, evl EventLoop) *PacemakerLoop + func (p *PacemakerLoop) Echo() + func (p *PacemakerLoop) Pace() error + func (p *PacemakerLoop) RunAsync(exit func(error)) + func (p *PacemakerLoop) Stop() + func (p *PacemakerLoop) Stopped() bool + type Websocket struct + Addr string + Conn Connection + DialLimiter *rate.Limiter + SendLimiter *rate.Limiter + Timeout time.Duration + func New(addr string) *Websocket + func NewCustom(conn Connection, addr string) *Websocket + func (ws *Websocket) Close() error + func (ws *Websocket) Dial(ctx context.Context) error + func (ws *Websocket) Listen() <-chan Event + func (ws *Websocket) Send(b []byte) error + func (ws *Websocket) SendContext(ctx context.Context, b []byte) error