推送
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
927 B

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