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) }