Versions in this module Expand all Collapse all v1 v1.7.9 Jul 22, 2026 v1.7.8 Jul 18, 2026 Changes in this version + const MsgTypeAuth + const MsgTypeAuthOK + const MsgTypeBroadcast + const MsgTypeClose + const MsgTypeError + var ErrAuthFailed = errors.New("鉴权失败") + var ErrAuthTimeout = errors.New("鉴权超时,断开连接") + var ErrClientNotFound = errors.New("客户端不存在") + var ErrConnectionClosed = errors.New("连接已关闭") + var ErrHandlerNotFound = errors.New("处理器不存在") + var ErrHubClosed = errors.New("Hub 已关闭") + var ErrInvalidMessage = errors.New("无效消息格式") + var ErrMessageQueueFull = errors.New("消息队列已满") + func ExampleUsage() + func ExampleWithJWTAuth() + type AuthHandler func(message Message) (clientID string, err error) + type Client struct + func (c *Client) GetMetadata() map[string]any + func (c *Client) ID() string + func (c *Client) IsAuthenticated() bool + func (c *Client) JoinGroup(groupID string) + func (c *Client) LeaveGroup(groupID string) + func (c *Client) Request() *http.Request + func (c *Client) Send(ctx context.Context, message Message) error + func (c *Client) SetMetadata(key string, value any) + type Config struct + AuthTimeout time.Duration + CheckOrigin func(r *http.Request) bool + EnableCompression bool + EventQueueSize int + GetClientsQueueSize int + HeartbeatInterval time.Duration + HeartbeatTimeout time.Duration + MaxConnections int + MaxMessageSize int64 + MessageQueueSize int + ReadBufferSize int + SendToClientQueueSize int + WriteBufferSize int + WriteTimeout time.Duration + func DefaultConfig() *Config + type ConfigOption func(*Config) + type ConnectHandler func(client *Client) error + type DisconnectHandler func(client *Client, err error) + type ErrorHandler func(client *Client, err error) + type ErrorMessage struct + Msg string + MsgType string + func NewErrorMessage(msg string) *ErrorMessage + func (e *ErrorMessage) Data() json.RawMessage + func (e *ErrorMessage) Marshal() ([]byte, error) + func (e *ErrorMessage) Type() string + type ExampleChatServer struct + func NewExampleChatServer() *ExampleChatServer + func (s *ExampleChatServer) Close() + func (s *ExampleChatServer) ServeHTTP(w http.ResponseWriter, r *http.Request) + type Handler interface + Handle func(client *Client, message Message) error + func Wrap[T any](fn func(client *Client, data T) error) Handler + type HandlerFunc func(client *Client, message Message) error + func (f HandlerFunc) Handle(client *Client, message Message) error + type Hub struct + func NewHub(opt ...ConfigOption) *Hub + func (h *Hub) Broadcast(message Message) + func (h *Hub) Close() + func (h *Hub) CloseClient(clientID string) error + func (h *Hub) GetClients() []*Client + func (h *Hub) GroupSize(groupID string) int + func (h *Hub) Handle(msgType string, handler Handler) + func (h *Hub) SendToClient(ctx context.Context, clientID string, message Message) error + func (h *Hub) SendToClientAsync(ctx context.Context, clientID string, message Message) error + func (h *Hub) SendToGroup(ctx context.Context, groupID string, message Message) error + func (h *Hub) SendToGroupAsync(ctx context.Context, groupID string, message Message) error + func (h *Hub) ServeHTTP(w http.ResponseWriter, r *http.Request) + func (h *Hub) SetAuthHandler(handler AuthHandler) + func (h *Hub) SetConnectHandler(handler ConnectHandler) + func (h *Hub) SetDefaultHandler(handler Handler) + func (h *Hub) SetDisconnectHandler(handler DisconnectHandler) + func (h *Hub) SetErrorHandler(handler ErrorHandler) + type Huber interface + Broadcast func(message Message) + Close func() + CloseClient func(clientID string) error + GetClients func() []*Client + GroupSize func(groupID string) int + Handle func(msgType string, handler Handler) + SendToClient func(ctx context.Context, clientID string, message Message) error + SendToClientAsync func(ctx context.Context, clientID string, message Message) error + SendToGroup func(ctx context.Context, groupID string, message Message) error + SendToGroupAsync func(ctx context.Context, groupID string, message Message) error + ServeHTTP func(w http.ResponseWriter, r *http.Request) + SetAuthHandler func(handler AuthHandler) + SetConnectHandler func(handler ConnectHandler) + SetDefaultHandler func(handler Handler) + SetDisconnectHandler func(handler DisconnectHandler) + SetErrorHandler func(handler ErrorHandler) + type Message interface + Data func() json.RawMessage + Marshal func() ([]byte, error) + Type func() string + type MessageRouter struct + func NewMessageRouter() *MessageRouter + func (r *MessageRouter) GetHandler(msgType string) Handler + func (r *MessageRouter) RegisterHandler(msgType string, handler Handler) + func (r *MessageRouter) SetDefaultHandler(handler Handler) + type StandardMessage struct + MsgType string + Payload any + func NewMessage(msgType string, data any) *StandardMessage + func (m *StandardMessage) Data() json.RawMessage + func (m *StandardMessage) Marshal() ([]byte, error) + func (m *StandardMessage) Type() string + func (m *StandardMessage) UnmarshalJSON(data []byte) error