package im

import (
	"github.com/go-netty/go-netty"
	"snow-im/app/utils"
	"snow-im/app/utils/netool"
)

var ImLogic ImHandler

func Init() {
	ImLogic = ImHandler{
		ImRouter,
	}
}

type ImHandler struct {
	netool.Router
}

//消息处理
func (this *ImHandler) HandMessage(message []byte, connect netty.InboundContext) error {
	defer func() {
		if err := recover();err!=nil{
			utils.Log(nil,"hand message",err)
		}
	}()
	var msgId, msg = utils.UnpackMessage(message)
	err := this.Router.HandleMsg(msgId, msg, connect)
	if err != nil{
		utils.Log(nil,"message err",err)
	}
	return err
}