1 Star 0 Fork 0

liuxuezhan / mylib

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
C_Reconnect.go 1.20 KB
一键复制 编辑 原始数据 按行查看 历史
liuxuezhan 提交于 2020-12-19 16:35 . 'ok'
package app
import (
"fmt"
"gitee.com/liuxuezhan/mylib/Protocol"
"gitee.com/liuxuezhan/mylib/conf/ConfigServer"
. "gitee.com/liuxuezhan/mylib/log"
"gitee.com/liuxuezhan/mylib/rsa-go"
"time"
)
func C_Reconnect(message MPB.Message, ctx interface{}) {
req := message.(*MPB.C_Reconnect)
sess := ctx.(*Session)
go func() {
// 认证
ec := (MPB.RetType_OK)
func() {
if sess.GetId() == uint64(req.SessionKey) {
Log.Warning("[reconnect] save session id")
ec = MPB.RetType_Failed
return
}
sign := rsa_go.GetMd5Hash(fmt.Sprintf("%d%s%s", req.SessionKey, req.UserId, ConfigServer.GetConf("auth", "token")))
if req.SessionToken != sign {
Log.Warning("[reconnect] sign err")
ec = MPB.RetType_Failed
return
}
user := Center_GetUserInfoById(req.UserId)
if user == nil {
ec = MPB.RetType_Failed
return
}
// 检查是否封号
if user.BanTs.After(time.Now()) {
ec = MPB.RetType_Login_UserBanned
return
}
// then -> reconnect player: 通知到 GS
ec = sess.ReconnectPlayer(uint64(req.SessionKey), &MPB.GW_UserReconnect{
Sid: sess.GetId(),
UserId: user.UserId,
})
}()
sess.SendMsg(&MPB.GW_Reconnect_R{
ErrorCode: ec,
})
}()
}
1
https://gitee.com/liuxuezhan/mylib.git
git@gitee.com:liuxuezhan/mylib.git
liuxuezhan
mylib
mylib
v1.1.0

搜索帮助