Documentation
¶
Overview ¶
* @Author: kamalyes 501893067@qq.com * @Date: 2025-12-28 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-12-29 21:20:20 * @FilePath: \go-wsc\exports_models.go * @Description: Models模块类型导出 - 保持向后兼容 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
Index ¶
- Constants
- Variables
- func CleanupTestRedis(t *testing.T, client *redis.Client)
- func CleanupTestTable(t *testing.T, db *gorm.DB, tableName string)
- func GetTestDB(t *testing.T) *gorm.DB
- func GetTestDBWithMigration(t *testing.T, models ...interface{}) *gorm.DB
- func GetTestRedisClient(t *testing.T) *redis.Client
- func GetTestRedisClientWithFlush(t *testing.T) *redis.Client
- func GetTestRedisUniversalClient(t *testing.T) redis.UniversalClient
- func NewTestRedisClient(t *testing.T) *redis.Client
- func StartTestHub(t *testing.T, hub *Hub)
- func SubscribeEventTyped[T any](p Publisher, eventTypes []string, handler func(*T) error) (func() error, error)
- type AckManager
- type AckMessage
- type AckStatus
- type AfterHeartbeatCallback
- type AgentWorkloadModel
- type AlertTemplateData
- type BatchSendFailureCallback
- type BatchSendResult
- type BatchSender
- type BeforeHeartbeatCallback
- type BroadcastResult
- type BroadcastType
- type BusinessCategory
- type Client
- type ClientConnectCallback
- type ClientDisconnectCallback
- type ClientMessage
- type ClientType
- type ClusterStats
- type ConnectionClaims
- type ConnectionRecord
- type ConnectionRecordRepository
- type ConnectionStats
- type ConnectionStatus
- type ConnectionTokenDecoder
- type ConnectionType
- type ContextKey
- type Department
- type DisconnectReason
- type DistributedMessage
- type EmailSender
- type ErrorCallback
- type ErrorSeverity
- type ErrorType
- type EventStatus
- type FailureReason
- type GoRedisRateLimitClient
- type GormOfflineMessageRepository
- type Group
- type GroupRepository
- type GroupSendResult
- type HeartbeatReportCallback
- type HeartbeatTimeoutCallback
- type Hub
- type HubHealthInfo
- type HubMessage
- type HubStats
- type HubStatsRepository
- type HybridOfflineMessageHandler
- type IDGenerator
- type IncrExpireEntry
- type KickUserResult
- type MessageClassification
- type MessagePriority
- type MessageQueueRepository
- type MessageReceivedCallback
- type MessageRecordFilter
- type MessageRecordGormRepository
- type MessageRecordRepository
- type MessageRole
- type MessageSendCallback
- type MessageSendRecord
- type MessageSendStatus
- type MessageStatus
- type MessageType
- type NodeConnectionStats
- type NodeInfo
- type NodeStats
- type NodeStatus
- type ObserverManagerStats
- type ObserverStats
- type OfflineMessageDBRepository
- type OfflineMessageFilter
- type OfflineMessageHandler
- type OfflineMessagePushCallback
- type OfflineMessageRecord
- type OnlineStatusRepository
- type OperationType
- type PendingMessage
- type PoolManager
- type Priority
- type PriorityStats
- type Publisher
- type PushType
- type QueueFullCallback
- type QueueType
- type RateLimitAlertService
- type RateLimiter
- type RateLimiterConfig
- type RedisClient
- type RedisGroupRepository
- type RedisHubStatsRepository
- type RedisMessageQueueRepository
- type RedisOnlineStatusRepository
- type RedisWorkloadRepository
- type RetryAttempt
- type SendAttempt
- type SendResult
- type Skill
- type TicketAssignedEvent
- type TicketAssignedEventHandler
- type TicketAssignmentFailedEvent
- type TicketAssignmentFailedEventHandler
- type TicketQueueEvent
- type TicketQueueEventHandler
- type UrgencyLevel
- type UserConnectionStats
- type UserResult
- type UserRole
- type UserStatus
- type UserStatusEvent
- type UserStatusEventHandler
- type UserType
- type VIPLevel
- type WSCLogger
- type WebSocket
- type WelcomeMessage
- type WelcomeMessageProvider
- type WelcomeTemplate
- type WorkloadDimension
- type WorkloadInfo
- type WorkloadRepository
- type Wsc
Constants ¶
const ( SystemGroupAgents = models.SystemGroupAgents // 客服系统组(每命名空间一个) SystemGroupObservers = models.SystemGroupObservers // 观察者系统组(全局 namespace="" 或命名空间级) )
系统保留组常量(__ 前缀,业务组禁止使用) agent 连接自动加入 __agents__,observer 连接自动加入 __observers__ 本地分片索引(agentShards/observerShards)保留做 O(1) 缓存, Redis 系统组用于跨节点共享成员关系与显式广播
const ( ContextKeyUserID = hub.ContextKeyUserID ContextKeySenderID = hub.ContextKeySenderID )
常量导出
const ( UserRoleCustomer = models.UserRoleCustomer UserRoleAgent = models.UserRoleAgent UserRoleAdmin = models.UserRoleAdmin )
==================== 枚举常量 - UserRole ====================
const ( UserTypeVisitor = models.UserTypeVisitor UserTypeCustomer = models.UserTypeCustomer UserTypeAgent = models.UserTypeAgent UserTypeAdmin = models.UserTypeAdmin UserTypeBot = models.UserTypeBot UserTypeVIP = models.UserTypeVIP UserTypeSystem = models.UserTypeSystem UserTypeObserver = models.UserTypeObserver )
==================== 枚举常量 - UserType ====================
const ( UserStatusOnline = models.UserStatusOnline UserStatusOffline = models.UserStatusOffline UserStatusBusy = models.UserStatusBusy UserStatusAway = models.UserStatusAway UserStatusInvisible = models.UserStatusInvisible )
==================== 枚举常量 - UserStatus ====================
const ( DisconnectReasonReadError = models.DisconnectReasonReadError DisconnectReasonWriteError = models.DisconnectReasonWriteError DisconnectReasonContextDone = models.DisconnectReasonContextDone DisconnectReasonCloseMessage = models.DisconnectReasonCloseMessage DisconnectReasonHeartbeatFail = models.DisconnectReasonHeartbeatFail DisconnectReasonKickOut = models.DisconnectReasonKickOut DisconnectReasonForceOffline = models.DisconnectReasonForceOffline DisconnectReasonTimeout = models.DisconnectReasonTimeout DisconnectReasonClientRequest = models.DisconnectReasonClientRequest DisconnectReasonServerShutdown = models.DisconnectReasonServerShutdown DisconnectReasonUnknown = models.DisconnectReasonUnknown )
==================== 枚举常量 - DisconnectReason ====================
const ( ErrorSeverityInfo = models.ErrorSeverityInfo ErrorSeverityWarning = models.ErrorSeverityWarning ErrorSeverityError = models.ErrorSeverityError ErrorSeverityCritical = models.ErrorSeverityCritical ErrorSeverityFatal = models.ErrorSeverityFatal )
==================== 枚举常量 - ErrorSeverity ====================
const ( QueueTypeBroadcast = models.QueueTypeBroadcast QueueTypePending = models.QueueTypePending QueueTypeAllQueues = models.QueueTypeAllQueues QueueTypeMessageQueue = models.QueueTypeMessageQueue QueueTypeClientBuffer = models.QueueTypeClientBuffer )
==================== 枚举常量 - QueueType ====================
const ( MessageStatusPending = models.MessageStatusPending MessageStatusSent = models.MessageStatusSent MessageStatusDelivered = models.MessageStatusDelivered MessageStatusRead = models.MessageStatusRead MessageStatusFailed = models.MessageStatusFailed )
==================== 枚举常量 - MessageStatus ====================
const ( NodeStatusActive = models.NodeStatusActive NodeStatusInactive = models.NodeStatusInactive NodeStatusOffline = models.NodeStatusOffline )
==================== 枚举常量 - NodeStatus ====================
const ( ConnectionStatusConnecting = models.ConnectionStatusConnecting ConnectionStatusConnected = models.ConnectionStatusConnected ConnectionStatusDisconnected = models.ConnectionStatusDisconnected ConnectionStatusReconnecting = models.ConnectionStatusReconnecting ConnectionStatusError = models.ConnectionStatusError )
==================== 枚举常量 - ConnectionStatus ====================
const ( OperationTypeJoin = models.OperationTypeJoin OperationTypeLeave = models.OperationTypeLeave OperationTypeMessage = models.OperationTypeMessage OperationTypeBroadcast = models.OperationTypeBroadcast OperationTypeNotify = models.OperationTypeNotify OperationTypeHeartbeat = models.OperationTypeHeartbeat OperationTypeAuth = models.OperationTypeAuth OperationTypeSync = models.OperationTypeSync )
==================== 枚举常量 - OperationType ====================
const ( ClientTypeWeb = models.ClientTypeWeb ClientTypeMobile = models.ClientTypeMobile ClientTypeDesktop = models.ClientTypeDesktop ClientTypeAPI = models.ClientTypeAPI )
==================== 枚举常量 - ClientType ====================
const ( ConnectionTypeWebSocket = models.ConnectionTypeWebSocket ConnectionTypeSSE = models.ConnectionTypeSSE )
==================== 枚举常量 - ConnectionType ====================
const ( PriorityLow = models.PriorityLow PriorityNormal = models.PriorityNormal PriorityHigh = models.PriorityHigh PriorityUrgent = models.PriorityUrgent PriorityCritical = models.PriorityCritical )
==================== 枚举常量 - Priority ====================
const ( DepartmentSales = models.DepartmentSales DepartmentSupport = models.DepartmentSupport DepartmentBilling = models.DepartmentBilling DepartmentGeneral = models.DepartmentGeneral DepartmentTechnical = models.DepartmentTechnical )
==================== 枚举常量 - Department ====================
const ( SkillTechnical = models.SkillTechnical SkillSales = models.SkillSales SkillBilling = models.SkillBilling SkillGeneral = models.SkillGeneral SkillLanguageEN = models.SkillLanguageEN SkillLanguageZH = models.SkillLanguageZH SkillVIP = models.SkillVIP )
==================== 枚举常量 - Skill ====================
const ( PushTypeNone = models.PushTypeNone PushTypeDirect = models.PushTypeDirect PushTypeQueue = models.PushTypeQueue PushTypeOffline = models.PushTypeOffline PushTypeUnicast = models.PushTypeUnicast )
==================== 枚举常量 - PushType ====================
const ( BroadcastTypeNone = models.BroadcastTypeNone BroadcastTypeSession = models.BroadcastTypeSession BroadcastTypeGlobal = models.BroadcastTypeGlobal )
==================== 枚举常量 - BroadcastType ====================
const ( VIPLevelV0 = models.VIPLevelV0 VIPLevelV1 = models.VIPLevelV1 VIPLevelV2 = models.VIPLevelV2 VIPLevelV3 = models.VIPLevelV3 VIPLevelV4 = models.VIPLevelV4 VIPLevelV5 = models.VIPLevelV5 VIPLevelV6 = models.VIPLevelV6 VIPLevelV7 = models.VIPLevelV7 VIPLevelV8 = models.VIPLevelV8 )
==================== 枚举常量 - VIPLevel ====================
const ( UrgencyLevelLow = models.UrgencyLevelLow UrgencyLevelNormal = models.UrgencyLevelNormal UrgencyLevelHigh = models.UrgencyLevelHigh )
==================== 枚举常量 - UrgencyLevel ====================
const ( BusinessCategoryGeneral = models.BusinessCategoryGeneral BusinessCategoryCustomer = models.BusinessCategoryCustomer BusinessCategorySales = models.BusinessCategorySales BusinessCategoryTechnical = models.BusinessCategoryTechnical BusinessCategoryFinance = models.BusinessCategoryFinance BusinessCategorySecurity = models.BusinessCategorySecurity BusinessCategoryOperations = models.BusinessCategoryOperations BusinessCategorySupport = models.BusinessCategorySupport BusinessCategoryIT = models.BusinessCategoryIT BusinessCategoryQuality = models.BusinessCategoryQuality BusinessCategoryOther = models.BusinessCategoryOther )
==================== 枚举常量 - BusinessCategory ====================
const ( MessageTypeText = models.MessageTypeText MessageTypeImage = models.MessageTypeImage MessageTypeFile = models.MessageTypeFile MessageTypeAudio = models.MessageTypeAudio MessageTypeVideo = models.MessageTypeVideo MessageTypeSystem = models.MessageTypeSystem MessageTypeNotice = models.MessageTypeNotice MessageTypeEvent = models.MessageTypeEvent MessageTypeAck = models.MessageTypeAck MessageTypeLocation = models.MessageTypeLocation MessageTypeCard = models.MessageTypeCard MessageTypeEmoji = models.MessageTypeEmoji MessageTypeSticker = models.MessageTypeSticker MessageTypeLink = models.MessageTypeLink MessageTypeQuote = models.MessageTypeQuote MessageTypeForward = models.MessageTypeForward MessageTypeCommand = models.MessageTypeCommand MessageTypeMarkdown = models.MessageTypeMarkdown MessageTypeRichText = models.MessageTypeRichText MessageTypeCode = models.MessageTypeCode MessageTypeJson = models.MessageTypeJson MessageTypeXML = models.MessageTypeXML MessageTypeBinary = models.MessageTypeBinary MessageTypeVoice = models.MessageTypeVoice MessageTypeGIF = models.MessageTypeGIF MessageTypeDocument = models.MessageTypeDocument MessageTypeSpreadsheet = models.MessageTypeSpreadsheet MessageTypePresentation = models.MessageTypePresentation MessageTypeContact = models.MessageTypeContact MessageTypeCalendar = models.MessageTypeCalendar MessageTypeTask = models.MessageTypeTask MessageTypePoll = models.MessageTypePoll MessageTypeForm = models.MessageTypeForm MessageTypePayment = models.MessageTypePayment MessageTypeOrder = models.MessageTypeOrder MessageTypeProduct = models.MessageTypeProduct MessageTypeInvite = models.MessageTypeInvite MessageTypeAnnouncement = models.MessageTypeAnnouncement MessageTypeAlert = models.MessageTypeAlert MessageTypeError = models.MessageTypeError MessageTypeInfo = models.MessageTypeInfo MessageTypeSuccess = models.MessageTypeSuccess MessageTypeWarning = models.MessageTypeWarning MessageTypeHeartbeat = models.MessageTypeHeartbeat MessageTypePing = models.MessageTypePing MessageTypePong = models.MessageTypePong MessageTypeTyping = models.MessageTypeTyping MessageTypeRead = models.MessageTypeRead MessageTypeDelivered = models.MessageTypeDelivered MessageTypeRecall = models.MessageTypeRecall MessageTypeEdit = models.MessageTypeEdit MessageTypeReaction = models.MessageTypeReaction MessageTypeThread = models.MessageTypeThread MessageTypeReply = models.MessageTypeReply MessageTypeMention = models.MessageTypeMention MessageTypeCustom = models.MessageTypeCustom MessageTypeUnknown = models.MessageTypeUnknown MessageTypeTicketCreated = models.MessageTypeTicketCreated MessageTypeTicketAssigned = models.MessageTypeTicketAssigned MessageTypeTicketClosed = models.MessageTypeTicketClosed MessageTypeTicketTimeoutClosed = models.MessageTypeTicketTimeoutClosed MessageTypeTicketTransfer = models.MessageTypeTicketTransfer MessageTypeTicketActive = models.MessageTypeTicketActive MessageTypeTest = models.MessageTypeTest MessageTypeWelcome = models.MessageTypeWelcome MessageTypeTerminate = models.MessageTypeTerminate MessageTypeTransferred = models.MessageTypeTransferred MessageTypeSessionCreated = models.MessageTypeSessionCreated MessageTypeSessionClosed = models.MessageTypeSessionClosed MessageTypeSessionQueued = models.MessageTypeSessionQueued MessageTypeSessionTimeout = models.MessageTypeSessionTimeout MessageTypeSessionPaused = models.MessageTypeSessionPaused MessageTypeSessionResumed = models.MessageTypeSessionResumed MessageTypeSessionTransferred = models.MessageTypeSessionTransferred MessageTypeSessionMemberJoined = models.MessageTypeSessionMemberJoined MessageTypeSessionMemberLeft = models.MessageTypeSessionMemberLeft MessageTypeSessionStatusChanged = models.MessageTypeSessionStatusChanged MessageTypeCheckUserStatus = models.MessageTypeCheckUserStatus MessageTypeUserStatusResponse = models.MessageTypeUserStatusResponse MessageTypeGetOnlineUsers = models.MessageTypeGetOnlineUsers MessageTypeOnlineUsersList = models.MessageTypeOnlineUsersList MessageTypeGetUserInfo = models.MessageTypeGetUserInfo MessageTypeUserInfoResponse = models.MessageTypeUserInfoResponse MessageTypeSystemQuery = models.MessageTypeSystemQuery MessageTypeSystemResponse = models.MessageTypeSystemResponse MessageTypeUserJoined = models.MessageTypeUserJoined MessageTypeUserLeft = models.MessageTypeUserLeft MessageTypeUserStatusChanged = models.MessageTypeUserStatusChanged MessageTypeServerStatus = models.MessageTypeServerStatus MessageTypeServerStats = models.MessageTypeServerStats MessageTypeClientConfig = models.MessageTypeClientConfig MessageTypeConfigUpdate = models.MessageTypeConfigUpdate MessageTypeHealthCheck = models.MessageTypeHealthCheck MessageTypeHealthResponse = models.MessageTypeHealthResponse MessageTypeConnected = models.MessageTypeConnected MessageTypeDisconnected = models.MessageTypeDisconnected MessageTypeReconnected = models.MessageTypeReconnected MessageTypeConnectionError = models.MessageTypeConnectionError MessageTypeConnectionTimeout = models.MessageTypeConnectionTimeout MessageTypeKickOut = models.MessageTypeKickOut MessageTypeForceOffline = models.MessageTypeForceOffline MessageTypeOpenWindow = models.MessageTypeOpenWindow MessageTypeCloseWindow = models.MessageTypeCloseWindow MessageTypeBStatusReminder = models.MessageTypeBStatusReminder )
==================== 消息类型常量 (100+ constants) ====================
const ( MessagePriorityLow = models.MessagePriorityLow MessagePriorityNormal = models.MessagePriorityNormal MessagePriorityHigh = models.MessagePriorityHigh MessagePriorityUrgent = models.MessagePriorityUrgent MessagePriorityCritical = models.MessagePriorityCritical )
==================== 消息优先级常量 ====================
const ( DataKeyContentExtra = models.DataKeyContentExtra DataKeyMetadata = models.DataKeyMetadata DataKeyMediaInfo = models.DataKeyMediaInfo )
==================== 消息常量 ====================
const ( MessageSendStatusPending = models.MessageSendStatusPending MessageSendStatusSending = models.MessageSendStatusSending MessageSendStatusSuccess = models.MessageSendStatusSuccess MessageSendStatusFailed = models.MessageSendStatusFailed MessageSendStatusRetrying = models.MessageSendStatusRetrying MessageSendStatusAckTimeout = models.MessageSendStatusAckTimeout MessageSendStatusUserOffline = models.MessageSendStatusUserOffline MessageSendStatusExpired = models.MessageSendStatusExpired FailureReasonQueueFull = models.FailureReasonQueueFull FailureReasonUserOffline = models.FailureReasonUserOffline FailureReasonConnError = models.FailureReasonConnError FailureReasonAckTimeout = models.FailureReasonAckTimeout FailureReasonSendTimeout = models.FailureReasonSendTimeout FailureReasonNetworkError = models.FailureReasonNetworkError FailureReasonUnknown = models.FailureReasonUnknown FailureReasonMaxRetry = models.FailureReasonMaxRetry FailureReasonExpired = models.FailureReasonExpired QueryMessageIDWhere = models.QueryMessageIDWhere OrderByCreateTimeDesc = models.OrderByCreateTimeDesc OrderByCreateTimeAsc = models.OrderByCreateTimeAsc OrderByExpiresAtAsc = models.OrderByExpiresAtAsc )
==================== 消息记录相关常量 ====================
const ( WorkloadDimensionRealtime = models.WorkloadDimensionRealtime // 实时(无过期) WorkloadDimensionHourly = models.WorkloadDimensionHourly // 小时(保留7天) WorkloadDimensionDaily = models.WorkloadDimensionDaily // 日(保留90天) WorkloadDimensionMonthly = models.WorkloadDimensionMonthly // 月(保留13个月) WorkloadDimensionYearly = models.WorkloadDimensionYearly // 年(保留5年) )
导出所有维度常量
const ( // 基础错误恢复类型 ErrorTypeConnection = models.ErrorTypeConnection ErrorTypeMessage = models.ErrorTypeMessage ErrorTypeSystem = models.ErrorTypeSystem ErrorTypeNetwork = models.ErrorTypeNetwork ErrorTypeConcurrency = models.ErrorTypeConcurrency ErrorTypeMemory = models.ErrorTypeMemory ErrorTypeConfiguration = models.ErrorTypeConfiguration // 连接相关错误 ErrTypeConnectionClosed = models.ErrTypeConnectionClosed ErrTypeConnectionReset = models.ErrTypeConnectionReset ErrTypeConnectionTimeout = models.ErrTypeConnectionTimeout ErrTypeNetworkUnreachable = models.ErrTypeNetworkUnreachable // 队列和缓冲区错误 ErrTypeQueueFull = models.ErrTypeQueueFull ErrTypeMessageBufferFull = models.ErrTypeMessageBufferFull ErrTypePendingQueueFull = models.ErrTypePendingQueueFull ErrTypeQueueAndPendingFull = models.ErrTypeQueueAndPendingFull // 用户和认证错误 ErrTypeUserOffline = models.ErrTypeUserOffline ErrTypeUserNotFound = models.ErrTypeUserNotFound ErrTypePermissionDenied = models.ErrTypePermissionDenied ErrTypeAuthenticationFailed = models.ErrTypeAuthenticationFailed // 消息错误 ErrTypeInvalidMessageFormat = models.ErrTypeInvalidMessageFormat ErrTypeMessageTooLarge = models.ErrTypeMessageTooLarge ErrTypeMessageTargetMissing = models.ErrTypeMessageTargetMissing ErrTypeMessageFiltered = models.ErrTypeMessageFiltered ErrTypeMessageDeliveryTimeout = models.ErrTypeMessageDeliveryTimeout // 客户端错误 ErrTypeClientNotFound = models.ErrTypeClientNotFound ErrTypeClientDisconnected = models.ErrTypeClientDisconnected ErrTypeNoAvailableAgents = models.ErrTypeNoAvailableAgents // 集线器操作错误 ErrTypeHubStartupTimeout = models.ErrTypeHubStartupTimeout ErrTypeHubShutdownTimeout = models.ErrTypeHubShutdownTimeout ErrTypeHubNotRunning = models.ErrTypeHubNotRunning ErrTypeCircuitBreakerOpen = models.ErrTypeCircuitBreakerOpen // 记录管理错误 ErrTypeRecordManagerDisabled = models.ErrTypeRecordManagerDisabled ErrTypeMessageRecordNotFound = models.ErrTypeMessageRecordNotFound ErrTypeMessageAlreadySent = models.ErrTypeMessageAlreadySent ErrTypeMaxRetriesExceeded = models.ErrTypeMaxRetriesExceeded ErrTypeRecordManagerNotInitialized = models.ErrTypeRecordManagerNotInitialized ErrTypeMaxRetriesExceededForMessage = models.ErrTypeMaxRetriesExceededForMessage ErrTypeRecordRepositoryNotSet = models.ErrTypeRecordRepositoryNotSet ErrTypeOnlineStatusRepositoryNotSet = models.ErrTypeOnlineStatusRepositoryNotSet ErrTypeStatsRepositoryNotSet = models.ErrTypeStatsRepositoryNotSet // 速率限制错误 ErrTypeRateLimitExceeded = models.ErrTypeRateLimitExceeded ErrTypeFrequencyLimitReached = models.ErrTypeFrequencyLimitReached // 操作错误 ErrTypeOperationTimeout = models.ErrTypeOperationTimeout ErrTypeTemporaryFailure = models.ErrTypeTemporaryFailure ErrTypeResourceBusy = models.ErrTypeResourceBusy ErrTypeUnknownError = models.ErrTypeUnknownError // ACK相关错误 ErrTypeAckTimeout = models.ErrTypeAckTimeout ErrTypeAckTimeoutRetries = models.ErrTypeAckTimeoutRetries ErrTypeContextCancelled = models.ErrTypeContextCancelled // 配置相关错误 ErrTypeConfigValidatorNotInitialized = models.ErrTypeConfigValidatorNotInitialized ErrTypeConfigValidationFailed = models.ErrTypeConfigValidationFailed ErrTypeConfigAutoFixFailed = models.ErrTypeConfigAutoFixFailed // 安全相关错误 ErrTypeIPInBlacklist = models.ErrTypeIPInBlacklist ErrTypeBruteForceDetected = models.ErrTypeBruteForceDetected ErrTypeThreatDetected = models.ErrTypeThreatDetected ErrTypeAccessDeniedByRule = models.ErrTypeAccessDeniedByRule // PubSub相关错误 ErrTypePubSubNotSet = models.ErrTypePubSubNotSet ErrTypePubSubPublishFailed = models.ErrTypePubSubPublishFailed ErrTypeEventSerializeFailed = models.ErrTypeEventSerializeFailed ErrTypeEventDeserializeFailed = models.ErrTypeEventDeserializeFailed // 错误消息格式常量 ErrMsgClientIDFormat = models.ErrMsgClientIDFormat ErrMsgDecompressFailed = models.ErrMsgDecompressFailed )
==================== 错误类型常量 ====================
const ( // 事件类型 EventUserOnline = models.EventUserOnline EventUserOffline = models.EventUserOffline EventTicketQueuePushed = models.EventTicketQueuePushed EventTicketAssigned = models.EventTicketAssigned EventTicketAssignmentFailed = models.EventTicketAssignmentFailed // 事件状态 EventTypeOnline = models.EventTypeOnline EventTypeOffline = models.EventTypeOffline )
==================== 事件类型常量 ====================
const ( AckStatusPending = protocol.AckStatusPending AckStatusConfirmed = protocol.AckStatusConfirmed AckStatusTimeout = protocol.AckStatusTimeout AckStatusFailed = protocol.AckStatusFailed )
AckStatus 常量
const ( // MessageRoleReceiver 作为接收者查询 MessageRoleReceiver = repository.MessageRoleReceiver // MessageRoleSender 作为发送者查询 MessageRoleSender = repository.MessageRoleSender )
const DefaultNamespace = models.DefaultNamespace
DefaultNamespace 默认命名空间ID(类似 k8s default namespace)
Variables ¶
var ( New = client.New NewWebSocket = client.NewWebSocket DefaultUpgrader = client.DefaultUpgrader IsNormalClose = client.IsNormalClose )
var ( // ErrGroupNotFound 群组未找到 ErrGroupNotFound = models.ErrGroupNotFound // ErrGroupMemberExisted 用户已是群组成员 ErrGroupMemberExisted = models.ErrGroupMemberExisted // ErrGroupFull 群组已满 ErrGroupFull = models.ErrGroupFull // ErrGroupRepoNotSet 群组仓库未设置 ErrGroupRepoNotSet = models.ErrGroupRepoNotSet // ErrGroupExisted 群组已存在(同命名空间下 groupID 唯一) ErrGroupExisted = models.ErrGroupExisted // ErrGroupReserved 群组名为系统保留名(__ 前缀) ErrGroupReserved = models.ErrGroupReserved )
var ( NewHub = hub.NewHub NewConnectionTokenDecoder = hub.NewConnectionTokenDecoder // 创建连接 Token 解码器 IssueConnectionToken = hub.IssueConnectionToken // 生成连接 Token(业务层调用) RevokeConnectionToken = hub.RevokeConnectionToken // 吊销连接 Token(多节点生效) )
var ( GetAllVIPLevels = models.GetAllVIPLevels GetAllUrgencyLevels = models.GetAllUrgencyLevels GetAllBusinessCategories = models.GetAllBusinessCategories )
==================== 枚举工具函数 ====================
var ( GetAllMessageTypes = models.GetAllMessageTypes GetMessageTypesByCategory = models.GetMessageTypesByCategory GetMessageTypesByPriority = models.GetMessageTypesByPriority GetPriorityStats = models.GetPriorityStats )
==================== 消息工具函数 ====================
var ( NewHubMessage = models.NewHubMessage NewClient = models.NewClient )
==================== 消息工具函数 ====================
var ( // 连接相关错误 ErrConnectionClosed = models.ErrConnectionClosed ErrMessageBufferFull = models.ErrMessageBufferFull ErrHubStartupTimeout = models.ErrHubStartupTimeout ErrHubShutdownTimeout = models.ErrHubShutdownTimeout ErrQueueAndPendingFull = models.ErrQueueAndPendingFull ErrMessageTargetMissing = models.ErrMessageTargetMissing ErrUserOffline = models.ErrUserOffline ErrMessageDeliveryTimeout = models.ErrMessageDeliveryTimeout ErrCircuitBreakerOpen = models.ErrCircuitBreakerOpen // ACK相关错误 ErrAckTimeout = models.ErrAckTimeout ErrAckTimeoutRetries = models.ErrAckTimeoutRetries ErrContextCancelled = models.ErrContextCancelled // 记录管理相关错误 ErrRecordManagerNotInitialized = models.ErrRecordManagerNotInitialized ErrMaxRetriesExceeded = models.ErrMaxRetriesExceeded // 配置相关错误 ErrConfigValidatorNotInitialized = models.ErrConfigValidatorNotInitialized // 业务逻辑错误 ErrMessageFiltered = models.ErrMessageFiltered ErrNoAvailableAgents = models.ErrNoAvailableAgents ErrQueueFull = models.ErrQueueFull ErrRecordRepositoryNotSet = models.ErrRecordRepositoryNotSet ErrOnlineStatusRepositoryNotSet = models.ErrOnlineStatusRepositoryNotSet ErrStatsRepositoryNotSet = models.ErrStatsRepositoryNotSet // PubSub相关错误 ErrPubSubNotSet = models.ErrPubSubNotSet ErrPubSubPublishFailed = models.ErrPubSubPublishFailed ErrEventSerializeFailed = models.ErrEventSerializeFailed ErrEventDeserializeFailed = models.ErrEventDeserializeFailed // 错误判断辅助函数 IsRetryableError = models.IsRetryableError IsRetryableErrorType = models.IsRetryableErrorType IsQueueFullError = models.IsQueueFullError IsUserOfflineError = models.IsUserOfflineError IsSendTimeoutError = models.IsSendTimeoutError IsAckTimeoutError = models.IsAckTimeoutError )
==================== 错误变量 ====================
var ( UserRoleValidator = models.UserRoleValidator UserTypeValidator = models.UserTypeValidator UserStatusValidator = models.UserStatusValidator DisconnectReasonValidator = models.DisconnectReasonValidator ErrorSeverityValidator = models.ErrorSeverityValidator QueueTypeValidator = models.QueueTypeValidator MessageStatusValidator = models.MessageStatusValidator NodeStatusValidator = models.NodeStatusValidator ConnectionStatusValidator = models.ConnectionStatusValidator OperationTypeValidator = models.OperationTypeValidator ClientTypeValidator = models.ClientTypeValidator PriorityValidator = models.PriorityValidator DepartmentValidator = models.DepartmentValidator SkillValidator = models.SkillValidator PushTypeValidator = models.PushTypeValidator BroadcastTypeValidator = models.BroadcastTypeValidator VIPLevelValidator = models.VIPLevelValidator UrgencyLevelValidator = models.UrgencyLevelValidator BusinessCategoryValidator = models.BusinessCategoryValidator )
==================== 验证器 ====================
var AllWorkloadDimensions = models.AllWorkloadDimensions
AllWorkloadDimensions 所有负载统计维度
var DefaultRateLimiterConfig = middleware.DefaultRateLimiterConfig
DefaultRateLimiterConfig 默认限流器配置
var InitLogger = middleware.InitLogger
InitLogger 根据配置初始化日志器
var IsSystemGroup = models.IsSystemGroup
IsSystemGroup 判断 groupID 是否为系统保留组(__ 前缀)
var NewAckManager = protocol.NewAckManager
NewAckManager 创建ACK管理器
var NewAckManagerWithOptions = protocol.NewAckManagerWithOptions
NewAckManagerWithOptions 创建ACK管理器(带选项)
var NewConnectionRecordRepository = repository.NewConnectionRecordRepository
NewConnectionRecordRepository 创建连接记录仓储
var NewDefaultWSCLogger = middleware.NewDefaultWSCLogger
NewDefaultWSCLogger 创建默认配置的WSC日志器
var NewGoRedisRateLimitClient = middleware.NewGoRedisRateLimitClient
NewGoRedisRateLimitClient 创建 go-redis 限流器客户端
var NewGormOfflineMessageRepository = repository.NewGormOfflineMessageRepository
NewGormOfflineMessageRepository 创建 Gorm 离线消息仓储
var NewHybridOfflineMessageHandler = handler.NewHybridOfflineMessageHandler
NewHybridOfflineMessageHandler 创建混合离线消息处理器
var NewMessageRecordRepository = repository.NewMessageRecordRepository
NewMessageRecordRepository 创建消息记录仓储
var NewRateLimitAlertService = middleware.NewRateLimitAlertService
NewRateLimitAlertService 创建限流告警服务
var NewRateLimiter = middleware.NewRateLimiter
NewRateLimiter 创建限流器
var NewRateLimiterConfigFromMessageRateLimit = middleware.NewRateLimiterConfigFromMessageRateLimit
NewRateLimiterConfigFromMessageRateLimit 从 go-config 的 MessageRateLimit 构建限流器配置
var NewRedisGroupRepository = repository.NewRedisGroupRepository
NewRedisGroupRepository 创建 Redis 群组仓库
var NewRedisHubStatsRepository = repository.NewRedisHubStatsRepository
NewRedisHubStatsRepository 创建 Redis Hub 统计仓储
var NewRedisMessageQueueRepository = repository.NewRedisMessageQueueRepository
NewRedisMessageQueueRepository 创建 Redis 消息队列仓储
var NewRedisOnlineStatusRepository = repository.NewRedisOnlineStatusRepository
NewRedisOnlineStatusRepository 创建 Redis 在线状态仓储
var NewRedisWorkloadRepository = repository.NewRedisWorkloadRepository
NewRedisWorkloadRepository 创建 Redis 工作负载仓储
var PublishEvent = events.PublishEvent
PublishEvent 发布自定义事件
var PublishTicketAssigned = events.PublishTicketAssigned
PublishTicketAssigned 发布工单分配成功事件
var PublishTicketAssignmentFailed = events.PublishTicketAssignmentFailed
PublishTicketAssignmentFailed 发布工单分配失败事件
var PublishTicketQueuePushed = events.PublishTicketQueuePushed
PublishTicketQueuePushed 发布工单入队事件
var PublishUserOffline = events.PublishUserOffline
PublishUserOffline 发布用户下线事件
var PublishUserOnline = events.PublishUserOnline
PublishUserOnline 发布用户上线事件
var SubscribeEvent = events.SubscribeEvent
SubscribeEvent 订阅自定义事件
var SubscribeTicketAssigned = events.SubscribeTicketAssigned
SubscribeTicketAssigned 订阅工单分配成功事件
var SubscribeTicketAssignmentFailed = events.SubscribeTicketAssignmentFailed
SubscribeTicketAssignmentFailed 订阅工单分配失败事件
var SubscribeTicketQueuePushed = events.SubscribeTicketQueuePushed
SubscribeTicketQueuePushed 订阅工单入队事件
var SubscribeUserOffline = events.SubscribeUserOffline
SubscribeUserOffline 订阅用户下线事件
var SubscribeUserOnline = events.SubscribeUserOnline
SubscribeUserOnline 订阅用户上线事件
Functions ¶
func CleanupTestRedis ¶ added in v0.5.7
CleanupTestRedis 清理 Redis 测试数据(可用于测试清理)
func CleanupTestTable ¶ added in v0.5.7
CleanupTestTable 清理测试表数据(SQLite 兼容,用 DELETE 替代 TRUNCATE)
func GetTestDB ¶ added in v0.5.7
GetTestDB 获取测试用数据库连接(单例模式) 基于 SQLite 内存数据库(cache=shared 共享),零外部依赖,无需连接真实 MySQL
func GetTestDBWithMigration ¶ added in v0.5.7
GetTestDBWithMigration 获取测试用数据库并执行迁移 models: 需要迁移的模型列表,例如 &MessageSendRecord{}, &ConnectionRecord{} 使用缓存机制避免重复迁移相同的模型
func GetTestRedisClient ¶ added in v0.5.7
GetTestRedisClient 获取测试用 Redis 客户端(单例模式) 基于 miniredis 本地内存实例,零外部依赖,无需连接真实 Redis
func GetTestRedisClientWithFlush ¶ added in v0.5.7
GetTestRedisClientWithFlush 获取测试用 Redis 客户端并清空测试数据 适用于需要干净环境的测试
func GetTestRedisUniversalClient ¶ added in v0.5.7
func GetTestRedisUniversalClient(t *testing.T) redis.UniversalClient
GetTestRedisUniversalClient 获取 Redis UniversalClient(兼容旧代码)
func NewTestRedisClient ¶ added in v0.5.7
NewTestRedisClient 创建新的 Redis 客户端(连同一 miniredis 实例的独立连接) 适用于需要独立连接的测试
func StartTestHub ¶ added in v0.5.7
StartTestHub 启动测试 Hub 并等待就绪
Types ¶
type AfterHeartbeatCallback ¶ added in v0.5.7
type AfterHeartbeatCallback = hub.AfterHeartbeatCallback
type AgentWorkloadModel ¶ added in v0.5.7
type AgentWorkloadModel = models.AgentWorkloadModel
AgentWorkloadModel 客服负载模型
type AlertTemplateData ¶ added in v0.5.4
type AlertTemplateData = middleware.AlertTemplateData
AlertTemplateData 告警模板数据
type BatchSendFailureCallback ¶ added in v0.5.7
type BatchSendFailureCallback = hub.BatchSendFailureCallback
type BatchSendResult ¶ added in v0.5.7
type BatchSendResult = hub.BatchSendResult
type BatchSender ¶ added in v0.5.7
type BatchSender = hub.BatchSender
type BeforeHeartbeatCallback ¶ added in v0.5.7
type BeforeHeartbeatCallback = hub.BeforeHeartbeatCallback
type BroadcastResult ¶ added in v0.5.0
type BroadcastResult = hub.BroadcastResult
type BroadcastType ¶ added in v0.5.7
type BroadcastType = models.BroadcastType
==================== 枚举类型 ====================
type BusinessCategory ¶ added in v0.2.1
type BusinessCategory = models.BusinessCategory
==================== 枚举类型 ====================
type ClientConnectCallback ¶ added in v0.5.7
type ClientConnectCallback = hub.ClientConnectCallback
type ClientDisconnectCallback ¶ added in v0.5.7
type ClientDisconnectCallback = hub.ClientDisconnectCallback
type ClientMessage ¶ added in v0.5.7
type ClientMessage = client.ClientMessage
type ClientType ¶ added in v0.1.1
type ClientType = models.ClientType
==================== 枚举类型 ====================
type ConnectionClaims ¶ added in v0.9.5
type ConnectionClaims = hub.ConnectionClaims // 连接 Token JWT Claims(user_id/user_type/device_id 加密载体)
type ConnectionRecord ¶ added in v0.5.7
type ConnectionRecord = models.ConnectionRecord
==================== 连接模型 ====================
type ConnectionRecordRepository ¶ added in v0.5.7
type ConnectionRecordRepository = repository.ConnectionRecordRepository
ConnectionRecordRepository 连接记录仓储接口
type ConnectionStats ¶ added in v0.5.7
type ConnectionStats = repository.ConnectionStats
ConnectionStats 连接统计信息
type ConnectionStatus ¶ added in v0.1.1
type ConnectionStatus = models.ConnectionStatus
==================== 枚举类型 ====================
type ConnectionTokenDecoder ¶ added in v0.9.5
type ConnectionTokenDecoder = hub.ConnectionTokenDecoder // 连接 Token 解码器接口
type ConnectionType ¶ added in v0.5.7
type ConnectionType = models.ConnectionType
==================== 枚举类型 ====================
type ContextKey ¶ added in v0.2.0
type ContextKey = hub.ContextKey
type Department ¶ added in v0.1.1
type Department = models.Department
==================== 枚举类型 ====================
type DisconnectReason ¶ added in v0.5.7
type DisconnectReason = models.DisconnectReason
==================== 枚举类型 ====================
type DistributedMessage ¶ added in v0.1.1
type DistributedMessage = models.DistributedMessage
==================== 基础类型 ====================
type ErrorCallback ¶ added in v0.5.7
type ErrorCallback = hub.ErrorCallback
type ErrorSeverity ¶ added in v0.2.4
type ErrorSeverity = models.ErrorSeverity
==================== 枚举类型 ====================
type EventStatus ¶ added in v0.5.7
type EventStatus = models.EventStatus
==================== 事件相关类型 ====================
type FailureReason ¶ added in v0.2.0
type FailureReason = models.FailureReason
==================== 消息和记录 ====================
type GoRedisRateLimitClient ¶ added in v0.9.6
type GoRedisRateLimitClient = middleware.GoRedisRateLimitClient
GoRedisRateLimitClient 基于 go-redis 的限流器客户端 实现统一的 RedisClient 接口,单次和批量操作都通过 Pipeline 优化
type GormOfflineMessageRepository ¶ added in v0.5.7
type GormOfflineMessageRepository = repository.GormOfflineMessageRepository
GormOfflineMessageRepository Gorm 离线消息仓储实现
type GroupRepository ¶ added in v0.9.6
type GroupRepository = repository.GroupRepository
GroupRepository 群组仓库接口
type GroupSendResult ¶ added in v0.9.6
type GroupSendResult = models.GroupSendResult
GroupSendResult 群组消息投递结果
type HeartbeatReportCallback ¶ added in v0.5.7
type HeartbeatReportCallback = hub.HeartbeatReportCallback
type HeartbeatTimeoutCallback ¶ added in v0.4.1
type HeartbeatTimeoutCallback = hub.HeartbeatTimeoutCallback
type HubHealthInfo ¶ added in v0.5.7
type HubHealthInfo = hub.HubHealthInfo
type HubMessage ¶ added in v0.2.0
type HubMessage = models.HubMessage
==================== 消息和记录 ====================
type HubStatsRepository ¶ added in v0.5.0
type HubStatsRepository = repository.HubStatsRepository
HubStatsRepository Hub 统计信息仓储接口
type HybridOfflineMessageHandler ¶ added in v0.5.7
type HybridOfflineMessageHandler = handler.HybridOfflineMessageHandler
HybridOfflineMessageHandler 混合离线消息处理器
type IDGenerator ¶ added in v0.5.7
type IDGenerator = models.IDGenerator
==================== 基础类型 ====================
type IncrExpireEntry ¶ added in v0.9.6
type IncrExpireEntry = middleware.IncrExpireEntry
IncrExpireEntry 递增条目(用于批量操作)
type KickUserResult ¶ added in v0.5.7
type KickUserResult = hub.KickUserResult
type MessageClassification ¶ added in v0.2.1
type MessageClassification = models.MessageClassification
==================== 分类相关 ====================
type MessagePriority ¶ added in v0.2.1
type MessagePriority = models.MessagePriority
==================== 消息类型 ====================
type MessageQueueRepository ¶ added in v0.5.0
type MessageQueueRepository = repository.MessageQueueRepository
MessageQueueRepository 消息队列仓储接口
type MessageReceivedCallback ¶ added in v0.5.7
type MessageReceivedCallback = hub.MessageReceivedCallback
type MessageRecordFilter ¶ added in v0.2.0
type MessageRecordFilter = repository.MessageRecordFilter
MessageRecordFilter 消息记录查询过滤器
type MessageRecordGormRepository ¶ added in v0.5.0
type MessageRecordGormRepository = repository.MessageRecordGormRepository
MessageRecordGormRepository Gorm 消息记录仓储实现
type MessageRecordRepository ¶ added in v0.5.0
type MessageRecordRepository = repository.MessageRecordRepository
MessageRecordRepository 消息记录仓储接口
type MessageSendCallback ¶ added in v0.5.7
type MessageSendCallback = hub.MessageSendCallback
type MessageSendRecord ¶ added in v0.2.0
type MessageSendRecord = models.MessageSendRecord
==================== 消息和记录 ====================
type MessageSendStatus ¶ added in v0.2.0
type MessageSendStatus = models.MessageSendStatus
==================== 消息和记录 ====================
type MessageStatus ¶ added in v0.1.1
type MessageStatus = models.MessageStatus
==================== 枚举类型 ====================
type MessageType ¶ added in v0.1.1
type MessageType = models.MessageType
==================== 消息类型 ====================
type NodeConnectionStats ¶ added in v0.5.7
type NodeConnectionStats = repository.NodeConnectionStats
NodeConnectionStats 节点连接统计
type NodeStatus ¶ added in v0.1.1
type NodeStatus = models.NodeStatus
==================== 枚举类型 ====================
type ObserverManagerStats ¶ added in v0.5.7
type ObserverManagerStats = hub.ObserverManagerStats
type ObserverStats ¶ added in v0.5.7
type ObserverStats = hub.ObserverStats
type OfflineMessageDBRepository ¶ added in v0.5.7
type OfflineMessageDBRepository = repository.OfflineMessageDBRepository
OfflineMessageDBRepository 离线消息数据库仓储接口
type OfflineMessageFilter ¶ added in v0.5.7
type OfflineMessageFilter = repository.OfflineMessageFilter
OfflineMessageFilter 离线消息查询过滤器
type OfflineMessageHandler ¶ added in v0.2.0
type OfflineMessageHandler = handler.OfflineMessageHandler
OfflineMessageHandler 离线消息处理器接口
type OfflineMessagePushCallback ¶ added in v0.5.7
type OfflineMessagePushCallback = hub.OfflineMessagePushCallback
type OfflineMessageRecord ¶ added in v0.5.7
type OfflineMessageRecord = repository.OfflineMessageRecord
OfflineMessageRecord 离线消息记录
type OnlineStatusRepository ¶ added in v0.5.0
type OnlineStatusRepository = repository.OnlineStatusRepository
OnlineStatusRepository 在线状态仓储接口
type OperationType ¶ added in v0.1.1
type OperationType = models.OperationType
==================== 枚举类型 ====================
type PendingMessage ¶ added in v0.2.0
type PendingMessage = protocol.PendingMessage
PendingMessage 待确认消息
type PoolManager ¶ added in v0.5.4
type PoolManager = hub.PoolManager
type PriorityStats ¶ added in v0.2.1
type PriorityStats = models.PriorityStats
==================== 消息类型 ====================
type QueueFullCallback ¶ added in v0.5.7
type QueueFullCallback = hub.QueueFullCallback
type RateLimitAlertService ¶ added in v0.5.4
type RateLimitAlertService = middleware.RateLimitAlertService
RateLimitAlertService 限流告警服务
type RateLimiterConfig ¶ added in v0.5.4
type RateLimiterConfig = middleware.RateLimiterConfig
RateLimiterConfig 限流器配置
type RedisClient ¶ added in v0.5.4
type RedisClient = middleware.RedisClient
RedisClient Redis客户端接口(统一单个和批量操作)
type RedisGroupRepository ¶ added in v0.9.6
type RedisGroupRepository = repository.RedisGroupRepository
RedisGroupRepository Redis 群组仓库实现
type RedisHubStatsRepository ¶ added in v0.5.0
type RedisHubStatsRepository = repository.RedisHubStatsRepository
RedisHubStatsRepository Redis Hub 统计仓储实现
type RedisMessageQueueRepository ¶ added in v0.5.0
type RedisMessageQueueRepository = repository.RedisMessageQueueRepository
RedisMessageQueueRepository Redis 消息队列仓储实现
type RedisOnlineStatusRepository ¶ added in v0.5.0
type RedisOnlineStatusRepository = repository.RedisOnlineStatusRepository
RedisOnlineStatusRepository Redis 在线状态仓储实现
type RedisWorkloadRepository ¶ added in v0.5.7
type RedisWorkloadRepository = repository.RedisWorkloadRepository
RedisWorkloadRepository Redis 工作负载仓储实现
type RetryAttempt ¶ added in v0.2.0
type RetryAttempt = models.RetryAttempt
==================== 消息和记录 ====================
type SendAttempt ¶ added in v0.2.1
type SendAttempt = hub.SendAttempt
type SendResult ¶ added in v0.2.1
type SendResult = hub.SendResult
type TicketAssignedEvent ¶ added in v0.5.7
type TicketAssignedEvent = models.TicketAssignedEvent
==================== 事件相关类型 ====================
type TicketAssignedEventHandler ¶ added in v0.5.7
type TicketAssignedEventHandler = models.TicketAssignedEventHandler
==================== 事件相关类型 ====================
type TicketAssignmentFailedEvent ¶ added in v0.5.7
type TicketAssignmentFailedEvent = models.TicketAssignmentFailedEvent
==================== 事件相关类型 ====================
type TicketAssignmentFailedEventHandler ¶ added in v0.5.7
type TicketAssignmentFailedEventHandler = models.TicketAssignmentFailedEventHandler
==================== 事件相关类型 ====================
type TicketQueueEvent ¶ added in v0.5.7
type TicketQueueEvent = models.TicketQueueEvent
==================== 事件相关类型 ====================
type TicketQueueEventHandler ¶ added in v0.5.7
type TicketQueueEventHandler = models.TicketQueueEventHandler
==================== 事件相关类型 ====================
type UrgencyLevel ¶ added in v0.2.1
type UrgencyLevel = models.UrgencyLevel
==================== 枚举类型 ====================
type UserConnectionStats ¶ added in v0.5.7
type UserConnectionStats = repository.UserConnectionStats
UserConnectionStats 用户连接统计
type UserResult ¶ added in v0.5.7
type UserResult = hub.UserResult
type UserStatus ¶ added in v0.1.1
type UserStatus = models.UserStatus
==================== 枚举类型 ====================
type UserStatusEvent ¶ added in v0.5.7
type UserStatusEvent = models.UserStatusEvent
==================== 事件相关类型 ====================
type UserStatusEventHandler ¶ added in v0.5.7
type UserStatusEventHandler = models.UserStatusEventHandler
==================== 事件相关类型 ====================
type WelcomeMessage ¶ added in v0.1.1
type WelcomeMessage = models.WelcomeMessage
==================== 模板相关 ====================
type WelcomeMessageProvider ¶ added in v0.1.1
type WelcomeMessageProvider = models.WelcomeMessageProvider
==================== 模板相关 ====================
type WelcomeTemplate ¶ added in v0.1.1
type WelcomeTemplate = models.WelcomeTemplate
==================== 模板相关 ====================
type WorkloadDimension ¶ added in v0.5.7
type WorkloadDimension = models.WorkloadDimension
WorkloadDimension 负载统计维度
type WorkloadRepository ¶ added in v0.5.7
type WorkloadRepository = repository.WorkloadRepository
WorkloadRepository 工作负载仓储接口
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
* @Author: kamalyes 501893067@qq.com * @Date: 2025-09-06 09:50:55 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-12-28 20:01:00 * @FilePath: \go-wsc\client\connection.go * @Description: 连接管理逻辑 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
|
* @Author: kamalyes 501893067@qq.com * @Date: 2025-09-06 09:50:55 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-12-28 20:01:00 * @FilePath: \go-wsc\client\connection.go * @Description: 连接管理逻辑 * * Copyright (c) 2025 by kamalyes, All Rights Reserved. |
|
examples
|
|
|
basic-client
command
*
|
* |
|
basic-server
command
*
|
* |
|
demo
command
*
|
* |
|
distributed-server
command
*
|
* |
|
message-send
command
*
|
* |
|
* @Author: kamalyes 501893067@qq.com * @Date: 2026-01-02 15:17:56 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2026-01-02 15:21:36 * @FilePath: \go-wsc\hub\online_status.go * @Description: Hub 在线状态相关方法 * * Copyright (c) 2026 by kamalyes, All Rights Reserved.
|
* @Author: kamalyes 501893067@qq.com * @Date: 2026-01-02 15:17:56 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2026-01-02 15:21:36 * @FilePath: \go-wsc\hub\online_status.go * @Description: Hub 在线状态相关方法 * * Copyright (c) 2026 by kamalyes, All Rights Reserved. |
|
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-22 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2026-01-02 15:22:16 * @FilePath: \go-wsc\middleware\logger.go * @Description: go-wsc 日志接口,直接复用 go-logger * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
|
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-22 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2026-01-02 15:22:16 * @FilePath: \go-wsc\middleware\logger.go * @Description: go-wsc 日志接口,直接复用 go-logger * * Copyright (c) 2025 by kamalyes, All Rights Reserved. |
|
* @Author: kamalyes 501893067@qq.com * @Date: 2025-02-24 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-02-24 00:00:00 * @FilePath: \go-wsc\models\agent_workload.go * @Description: 客服负载模型 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
|
* @Author: kamalyes 501893067@qq.com * @Date: 2025-02-24 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-02-24 00:00:00 * @FilePath: \go-wsc\models\agent_workload.go * @Description: 客服负载模型 * * Copyright (c) 2025 by kamalyes, All Rights Reserved. |
|
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-15 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-12-28 00:00:00 * @FilePath: \go-wsc\protocol\ack.go * @Description: ACK消息确认机制 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
|
* @Author: kamalyes 501893067@qq.com * @Date: 2025-11-15 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-12-28 00:00:00 * @FilePath: \go-wsc\protocol\ack.go * @Description: ACK消息确认机制 * * Copyright (c) 2025 by kamalyes, All Rights Reserved. |
|
* @Author: kamalyes 501893067@qq.com * @Date: 2025-12-29 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-12-29 23:56:18 * @FilePath: \go-wsc\repository\aliases.go * @Description: 类型别名 - 为 models 包中的类型创建别名,便于在 repository 层使用 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.
|
* @Author: kamalyes 501893067@qq.com * @Date: 2025-12-29 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-12-29 23:56:18 * @FilePath: \go-wsc\repository\aliases.go * @Description: 类型别名 - 为 models 包中的类型创建别名,便于在 repository 层使用 * * Copyright (c) 2025 by kamalyes, All Rights Reserved. |