登录退出完善
This commit is contained in:
@@ -3,6 +3,7 @@ package socket
|
||||
import (
|
||||
"blazing/common/utils"
|
||||
"blazing/modules/blazing/model"
|
||||
"blazing/modules/blazing/service"
|
||||
"context"
|
||||
"fmt"
|
||||
"sync"
|
||||
@@ -51,6 +52,7 @@ type Player struct {
|
||||
IsFighting bool
|
||||
context.Context
|
||||
Playerinvite uint32 //当前邀请的玩家ID
|
||||
Onlinetime uint32 //当前登录时间
|
||||
}
|
||||
|
||||
// PlayerOption 定义配置 Player 的函数类型
|
||||
@@ -85,6 +87,16 @@ func (p *Player) Cheak(b error) {
|
||||
|
||||
}
|
||||
|
||||
// Save 保存玩家数据
|
||||
func (p *Player) Save() {
|
||||
|
||||
p.Info.TimeToday = p.Info.TimeToday + uint32(time.Now().Unix()) - uint32(p.Onlinetime) //保存电池时间
|
||||
p.Onlinetime = uint32(time.Now().Unix())
|
||||
|
||||
service.NewUserService(p.Info.UserID).Save(p.Info)
|
||||
|
||||
}
|
||||
|
||||
// IsLoggedIn 检查是否已登录
|
||||
func (lw *Player) IsLoggedIn() bool {
|
||||
lw.mu.Lock()
|
||||
|
||||
@@ -52,6 +52,7 @@ func (s *Server) OnClose(c gnet.Conn, _ error) (action gnet.Action) {
|
||||
t.IsLogin = false
|
||||
socket.Mainplayer.Delete(t.Info.UserID)
|
||||
share.ShareManager.DeleteUserOnline(t.Info.UserID) //设置用户登录服务器
|
||||
t.Save() //保存玩家数据
|
||||
}
|
||||
|
||||
//}
|
||||
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
"blazing/logic/service/space"
|
||||
blservice "blazing/modules/blazing/service"
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/gogf/gf/v2/os/glog"
|
||||
"github.com/jinzhu/copier"
|
||||
@@ -23,11 +24,12 @@ func (h *Controller) Login(data *login.InInfo, c *socket.Conn) (result *login.Ou
|
||||
h.RPCClient.Kick(data.Head.UserID) //先踢人
|
||||
playerinfo := blservice.NewUserService(data.Head.UserID).Person()
|
||||
t := service.SetPlayer(c, playerinfo)
|
||||
t.Onlinetime = uint32(time.Now().Unix()) //保存时间戳
|
||||
copier.Copy(playerinfo, t) //先复制给内存信息
|
||||
share.ShareManager.SetUserOnline(data.Head.UserID, h.Port) //设置用户登录服务器
|
||||
t.CompleteLogin() //通知客户端登录成功
|
||||
|
||||
glog.Debug(context.Background(), "登录成功,初始地图 人数:", space.GetSpace(1).Len())
|
||||
glog.Debug(context.Background(), "登录成功,初始地图 人数:", space.GetSpace(t.Info.MapID).Len())
|
||||
|
||||
result = login.NewOutInfo() //设置登录消息
|
||||
copier.Copy(playerinfo, result)
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/gogf/gf/v2/os/glog"
|
||||
)
|
||||
@@ -37,7 +38,7 @@ func (s *UserService) Reg(nick string, color uint32) {
|
||||
t1.Nick = nick
|
||||
|
||||
t1.Color = color
|
||||
|
||||
t1.RegisterTime = uint32(time.Now().Unix())//写入注册时间
|
||||
t22, err := json.Marshal(t1)
|
||||
if err != nil {
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user