package hasaki_push import ( "git.ouxuan.net/tommy/melody" "sync" ) var PushMessageSpanSecond = 5 func Send(sender int, receiver int, messageType string, Content interface{}, retries ...int) error { retry := 0 if len(retries) > 0 { retry = retries[0] } return add(&PushMessage{ Type: messageType, Sender: sender, Receiver: receiver, RetryNumber: retry, SpanSecond: PushMessageSpanSecond, Content: Content, Status: NotSend, }) } func SetStatus(uniqueId string, status MessageStatus) error { return setStatus(uniqueId, status) } type Message struct { UniqueId string `json:"unique_id"` Type string `json:"type"` Content interface{} `json:"content"` } var messageHandlerMap sync.Map type MessageHandler func(session *melody.Session, message []byte) func SetMessageHandler(messageType string, f MessageHandler) { messageHandlerMap.Store(messageType, f) } // LOGIN type SessionType string const ( Unknown SessionType = "unknown" // 未知 PadType SessionType = "pad" // 平板 AdminType SessionType = "admin" // 管理员 UserType SessionType = "user" // 用户 CoachType SessionType = "coach" // 教练 ) type Session struct { *melody.Session Type SessionType `json:"type"` UserId int `json:"user_id"` }