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