Files
backend/internal/pkg/ws/publisher.go

23 lines
884 B
Go
Raw Normal View History

package ws
// MessagePublisher 定义消息发布接口
// ws.Hub 隐式满足此接口ws.Bus 组合 Hub 并扩展跨实例能力
type MessagePublisher interface {
// 消息发布
PublishToUser(userID string, eventType string, payload any) Event
PublishToUsers(userIDs []string, eventType string, payload any)
PublishToUsersConcurrent(userIDs []string, eventType string, payload any)
PublishToUserOnline(userID string, eventType string, payload any) bool
PublishToUserOnlineReliable(userID string, eventType string, payload any) bool
Broadcast(eventType string, payload any)
// 在线状态
HasClients(userID string) bool
FilterOnline(userIDs []string) (online, offline []string)
// 本地操作(不经过 Redis
SendError(client *Client, code string, message string)
NextID() uint64
OnDisconnect(handler DisconnectHandler)
OnConnect(handler ConnectHandler)
}