Versions in this module Expand all Collapse all v1 v1.0.1 Aug 6, 2023 v1.0.0 May 7, 2023 Changes in this version + const LeaveReasonClose + const LeaveReasonLeave + const LeaveReasonRejoin + const MessageTypeBroadcast + const MessageTypePush + const MessageTypeReply + const ReplyStatusCodeError + const ReplyStatusCodeOk + const StatusJoined + const StatusJoining + const StatusLeaving + const StatusRemoved + var ErrJoinCrashed = fmt.Errorf("join crashed") + var ErrSocketNotJoined = fmt.Errorf("socket not joined") + var ErrUnmatchedTopic = fmt.Errorf("unmatched topic") + func ClientJsHandler(r *chain.Router, route string) + type Channel struct + TopicPattern string + func NewChannel(topicPattern string, factory func(channel *Channel)) *Channel + func (c *Channel) Broadcast(topic string, event string, payload any) (err error) + func (c *Channel) Dispatch(topic string, msg any, from string) + func (c *Channel) HandleIn(event string, handler InHandler) + func (c *Channel) HandleOut(event string, handler OutHandler) + func (c *Channel) Join(topic string, handler JoinHandler) + func (c *Channel) Leave(topic string, handler LeaveHandler) + func (c *Channel) LocalBroadcast(topic string, event string, payload any) (err error) + type ConfigHandler func(handler *Handler, router *chain.Router, endpoint string) error + type ConnectHandler func(session *Session) error + type Handler struct + Channels []*Channel + OnConfig ConfigHandler + OnConnect ConnectHandler + Options map[string]any + Serializer chain.Serializer + Transports []Transport + func (h *Handler) Configure(router *chain.Router, endpoint string) + func (h *Handler) Connect(endpoint string, params map[string]string) (session *Session, err error) + func (h *Handler) Dispatch(payload []byte, session *Session) + func (h *Handler) Resume(socketId string) *Session + type InHandler func(event string, payload any, socket *Socket) (reply any, err error) + type JoinHandler func(payload any, socket *Socket) (reply any, err error) + type LeaveHandler func(socket *Socket, reason LeaveReason) + type LeaveReason int + type Message struct + Event string + JoinRef int + Kind MessageType + Payload any + Ref int + Status int + Topic string + type MessageSerializer struct + func (s *MessageSerializer) Decode(data []byte, v any) (out any, err error) + func (s *MessageSerializer) Encode(v any) (data []byte, err error) + type MessageType int + type OutHandler func(event string, payload any, socket *Socket) + type Session struct + Options map[string]any + Params map[string]string + func (s *Session) Dispatch(message []byte) + func (s *Session) Endpoint() string + func (s *Session) GetSocket(topic string) *Socket + func (s *Session) Push(bytes []byte) + func (s *Session) ScheduleShutdown(after time.Duration) + func (s *Session) SocketId() string + func (s *Session) StopScheduledShutdown() + type Socket struct + Params map[string]string + func (s *Socket) Broadcast(event string, payload any) (err error) + func (s *Socket) Endpoint() string + func (s *Socket) Get(key string) (value any) + func (s *Socket) Id() string + func (s *Socket) Push(event string, payload any) (err error) + func (s *Socket) Send(bytes []byte) error + func (s *Socket) Session() *Session + func (s *Socket) Set(key string, value any) + func (s *Socket) Status() Status + func (s *Socket) Topic() string + type Status int + type Transport interface + Configure func(h *Handler, r *chain.Router, endpoint string) + type TransportSSE struct + func (t *TransportSSE) Configure(handler *Handler, router *chain.Router, endpoint string)