|
|
@ -2,44 +2,45 @@ package hasaki_push |
|
|
|
|
|
|
|
import ( |
|
|
|
"git.ouxuan.net/hasaki-service/hasaki-sdk/hskgin" |
|
|
|
"git.ouxuan.net/hasaki-service/hasaki-sdk/hskutils" |
|
|
|
"git.ouxuan.net/tommy/melody" |
|
|
|
) |
|
|
|
|
|
|
|
func Initialize(router *hskgin.GinHelper) { |
|
|
|
mrouter := melody.New() |
|
|
|
node := NewNode() |
|
|
|
|
|
|
|
// PAD_MESSAGE
|
|
|
|
router.Any("/push/message", func(ctx *hskgin.GinContextHelper) { |
|
|
|
err := mrouter.HandleRequest(ctx.GinContext.Writer, ctx.GinContext.Request) |
|
|
|
err := node.HandleRequest(ctx.GinContext.Writer, ctx.GinContext.Request) |
|
|
|
ctx.CheckErrDisplayByError(err) |
|
|
|
}) |
|
|
|
|
|
|
|
// 连接
|
|
|
|
mrouter.HandleConnect(func(session *melody.Session) { |
|
|
|
|
|
|
|
node.HandleConnect(func(session *melody.Session) { |
|
|
|
node.SetSession("unknown-"+hskutils.CreateUUID(), NewSession(session)) // 连接
|
|
|
|
}) |
|
|
|
|
|
|
|
// 断连
|
|
|
|
mrouter.HandleDisconnect(func(session *melody.Session) { |
|
|
|
|
|
|
|
node.HandleDisconnect(func(session *melody.Session) { |
|
|
|
}) |
|
|
|
|
|
|
|
// 接收信息
|
|
|
|
mrouter.HandleMessage(func(session *melody.Session, message []byte) { |
|
|
|
node.HandleMessage(func(session *melody.Session, message []byte) { |
|
|
|
// 根据消息类型进行各种
|
|
|
|
}) |
|
|
|
|
|
|
|
// 发送消息
|
|
|
|
mrouter.HandleSentMessage(func(session *melody.Session, bytes []byte) { |
|
|
|
node.HandleSentMessage(func(session *melody.Session, bytes []byte) { |
|
|
|
// 设置发送状态
|
|
|
|
}) |
|
|
|
|
|
|
|
// 错误
|
|
|
|
mrouter.HandleError(func(session *melody.Session, err error) { |
|
|
|
node.HandleError(func(session *melody.Session, err error) { |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
// 关闭
|
|
|
|
mrouter.HandleClose(func(session *melody.Session, i int, s string) error { |
|
|
|
node.HandleClose(func(session *melody.Session, i int, s string) error { |
|
|
|
return nil |
|
|
|
}) |
|
|
|
} |