Skip to content

Commit ed04563

Browse files
committed
[更新]1. 更新新版本的接口适配和DEMO同步
1 parent f43a52e commit ed04563

22 files changed

+657
-519
lines changed
Lines changed: 35 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,51 @@
1-
using System.Threading.Tasks;
1+
/*using System.Threading.Tasks;
22
using GameFrameX.Apps.Account.Login.Entity;
33
using GameFrameX.Apps.Player.Player.Entity;
4-
using GameFrameX.Core.Abstractions;
54
using GameFrameX.Core.Abstractions.Attribute;
65
using GameFrameX.Core.Components;
7-
using GameFrameX.DataBase;
86
using GameFrameX.Monitor.Account;
97
using GameFrameX.Monitor.Player;
108
using GameFrameX.Setting;
119
using Random = GameFrameX.Utility.Random;
1210
13-
namespace GameFrameX.Apps.Account.Login.Component
11+
namespace GameFrameX.Apps.Account.Login.Component;
12+
13+
[ComponentType((ushort)ActorType.Account)]
14+
public sealed class LoginComponent : StateComponent<LoginState>
1415
{
15-
[ComponentType((ushort)ActorType.Account)]
16-
public sealed class LoginComponent : StateComponent<LoginState>
16+
public async Task<LoginState> OnLogin(ReqLogin reqLogin)
1717
{
18-
public async Task<LoginState> OnLogin(ReqLogin reqLogin)
19-
{
20-
MetricsAccountRegister.LoginCounterOptions.Inc();
21-
return await GameDb.FindAsync<LoginState>(m => m.UserName == reqLogin.UserName && m.Password == reqLogin.Password);
22-
}
18+
MetricsAccountRegister.LoginCounterOptions.Inc();
19+
return await GameDb.FindAsync<LoginState>(m => m.UserName == reqLogin.UserName && m.Password == reqLogin.Password);
20+
}
2321
24-
public async Task<LoginState> Register(long accountId, ReqLogin reqLogin)
25-
{
26-
MetricsAccountRegister.RegisterCounterOptions.Inc();
27-
LoginState loginState = new LoginState() { Id = accountId, UserName = reqLogin.UserName, Password = reqLogin.Password };
28-
await GameDb.SaveOneAsync<LoginState>(loginState);
29-
return loginState;
30-
}
22+
public async Task<LoginState> Register(long accountId, ReqLogin reqLogin)
23+
{
24+
MetricsAccountRegister.RegisterCounterOptions.Inc();
25+
var loginState = new LoginState { Id = accountId, UserName = reqLogin.UserName, Password = reqLogin.Password, };
26+
await GameDb.SaveOneAsync(loginState);
27+
return loginState;
28+
}
3129
32-
public async Task<List<PlayerState>> GetPlayerList(ReqPlayerList reqPlayerList)
33-
{
34-
MetricsPlayerRegister.GetPlayerListCounterOptions.Inc();
35-
return await GameDb.FindListAsync<PlayerState>(m => m.AccountId == reqPlayerList.Id);
36-
}
30+
public async Task<List<PlayerState>> GetPlayerList(ReqPlayerList reqPlayerList)
31+
{
32+
MetricsPlayerRegister.GetPlayerListCounterOptions.Inc();
33+
return await GameDb.FindListAsync<PlayerState>(m => m.AccountId == reqPlayerList.Id);
34+
}
3735
38-
public async Task<PlayerState> OnPlayerCreate(ReqPlayerCreate reqPlayerCreate)
36+
public async Task<PlayerState> OnPlayerCreate(ReqPlayerCreate reqPlayerCreate)
37+
{
38+
var playerState = new PlayerState
3939
{
40-
PlayerState playerState = new PlayerState
41-
{
42-
Id = ActorIdGenerator.GetActorId(GlobalConst.ActorTypePlayer),
43-
AccountId = reqPlayerCreate.Id,
44-
Name = reqPlayerCreate.Name,
45-
Level = (uint)Random.Next(1, 50),
46-
State = 0,
47-
Avatar = (uint)Random.Next(1, 50),
48-
};
49-
MetricsPlayerRegister.CreateCounterOptions.Inc();
50-
await GameDb.SaveOneAsync<PlayerState>(playerState);
51-
return playerState;
52-
}
53-
54-
40+
Id = ActorIdGenerator.GetActorId(GlobalConst.ActorTypePlayer),
41+
AccountId = reqPlayerCreate.Id,
42+
Name = reqPlayerCreate.Name,
43+
Level = (uint)Random.Next(1, 50),
44+
State = 0,
45+
Avatar = (uint)Random.Next(1, 50),
46+
};
47+
MetricsPlayerRegister.CreateCounterOptions.Inc();
48+
await GameDb.SaveOneAsync(playerState);
49+
return playerState;
5550
}
56-
}
51+
}*/
Lines changed: 77 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,98 @@
1-
using GameFrameX.Apps.Account.Login.Component;
1+
/*using GameFrameX.Apps.Account.Login.Component;
22
using GameFrameX.Apps.Account.Login.Entity;
3-
using GameFrameX.Core.Abstractions;
43
using GameFrameX.Hotfix.Common;
5-
using GameFrameX.Hotfix.Logic.Server.Server;
6-
using GameFrameX.NetWork;
4+
using GameFrameX.NetWork.Abstractions;
75
8-
namespace GameFrameX.Hotfix.Logic.Account.Login
6+
namespace GameFrameX.Hotfix.Logic.Account.Login;
7+
8+
public class LoginComponentAgent : StateComponentAgent<LoginComponent, LoginState>
99
{
10-
public class LoginComponentAgent : StateComponentAgent<LoginComponent, LoginState>
10+
public async Task OnLogin(INetWorkChannel workChannel, ReqLogin reqLogin)
1111
{
12-
public async Task OnLogin(INetWorkChannel workChannel, ReqLogin reqLogin)
12+
if (reqLogin.UserName.IsNullOrEmpty() || reqLogin.Password.IsNullOrEmpty())
1313
{
14-
if (reqLogin.UserName.IsNullOrEmpty() || reqLogin.Password.IsNullOrEmpty())
15-
{
16-
RespErrorCode respErrorCode = new RespErrorCode
17-
{
18-
ErrCode = (int)ResultCode.Failed,
19-
};
20-
await workChannel.WriteAsync(respErrorCode, (int)OperationStatusCode.AccountCannotBeNull);
21-
return;
22-
}
23-
24-
var loginState = await OwnerComponent.OnLogin(reqLogin);
25-
if (loginState == null)
26-
{
27-
var accountId = ActorIdGenerator.GetUniqueId();
28-
loginState = await OwnerComponent.Register(accountId, reqLogin);
29-
}
30-
31-
// 构建账号登录返回信息
32-
RespLogin respLogin = new RespLogin
14+
var respErrorCode = new RespErrorCode
3315
{
34-
UniqueId = reqLogin.UniqueId,
35-
Code = loginState.State,
36-
CreateTime = loginState.CreateTime,
37-
Level = loginState.Level,
38-
Id = loginState.Id,
39-
RoleName = loginState.NickName,
16+
ErrCode = (int)ResultCode.Failed,
4017
};
41-
await workChannel.WriteAsync(respLogin);
18+
await workChannel.WriteAsync(respErrorCode, (int)OperationStatusCode.AccountCannotBeNull);
19+
return;
4220
}
4321
44-
45-
/// <summary>
46-
/// 创建角色
47-
/// </summary>
48-
/// <param name="workChannel"></param>
49-
/// <param name="reqPlayerCreate"></param>
50-
public async Task OnPlayerCreate(INetWorkChannel workChannel, ReqPlayerCreate reqPlayerCreate)
22+
var loginState = await OwnerComponent.OnLogin(reqLogin);
23+
if (loginState == null)
5124
{
52-
var playerState = await OwnerComponent.OnPlayerCreate(reqPlayerCreate);
53-
RespPlayerCreate respPlayerCreate = new RespPlayerCreate
54-
{
55-
UniqueId = reqPlayerCreate.UniqueId,
56-
PlayerInfo = new PlayerInfo
57-
{
58-
Id = playerState.Id,
59-
Name = playerState.Name,
60-
Level = playerState.Level,
61-
State = playerState.State,
62-
Avatar = playerState.Avatar
63-
}
64-
};
65-
await workChannel.WriteAsync(respPlayerCreate);
25+
var accountId = ActorIdGenerator.GetUniqueId();
26+
loginState = await OwnerComponent.Register(accountId, reqLogin);
6627
}
6728
68-
/// <summary>
69-
/// 获取角色列表
70-
/// </summary>
71-
/// <param name="workChannel"></param>
72-
/// <param name="reqPlayerList"></param>
73-
public async Task OnGetPlayerList(INetWorkChannel workChannel, ReqPlayerList reqPlayerList)
29+
// 构建账号登录返回信息
30+
var respLogin = new RespLogin
7431
{
75-
var playerList = await this.OwnerComponent.GetPlayerList(reqPlayerList);
32+
UniqueId = reqLogin.UniqueId,
33+
Code = loginState.State,
34+
CreateTime = loginState.CreateTime,
35+
Level = loginState.Level,
36+
Id = loginState.Id,
37+
RoleName = loginState.NickName,
38+
};
39+
await workChannel.WriteAsync(respLogin);
40+
}
7641
77-
RespPlayerList respPlayerList = new RespPlayerList
42+
43+
/// <summary>
44+
/// 创建角色
45+
/// </summary>
46+
/// <param name="workChannel"></param>
47+
/// <param name="reqPlayerCreate"></param>
48+
public async Task OnPlayerCreate(INetWorkChannel workChannel, ReqPlayerCreate reqPlayerCreate)
49+
{
50+
var playerState = await OwnerComponent.OnPlayerCreate(reqPlayerCreate);
51+
var respPlayerCreate = new RespPlayerCreate
52+
{
53+
UniqueId = reqPlayerCreate.UniqueId,
54+
PlayerInfo = new PlayerInfo
7855
{
79-
UniqueId = reqPlayerList.UniqueId,
80-
PlayerList = new List<PlayerInfo>()
81-
};
82-
if (playerList != null)
56+
Id = playerState.Id,
57+
Name = playerState.Name,
58+
Level = playerState.Level,
59+
State = playerState.State,
60+
Avatar = playerState.Avatar,
61+
},
62+
};
63+
await workChannel.WriteAsync(respPlayerCreate);
64+
}
65+
66+
/// <summary>
67+
/// 获取角色列表
68+
/// </summary>
69+
/// <param name="workChannel"></param>
70+
/// <param name="reqPlayerList"></param>
71+
public async Task OnGetPlayerList(INetWorkChannel workChannel, ReqPlayerList reqPlayerList)
72+
{
73+
var playerList = await OwnerComponent.GetPlayerList(reqPlayerList);
74+
75+
var respPlayerList = new RespPlayerList
76+
{
77+
UniqueId = reqPlayerList.UniqueId,
78+
PlayerList = new List<PlayerInfo>(),
79+
};
80+
if (playerList != null)
81+
{
82+
foreach (var playerState in playerList)
8383
{
84-
foreach (var playerState in playerList)
84+
var playerInfo = new PlayerInfo
8585
{
86-
var playerInfo = new PlayerInfo
87-
{
88-
Id = playerState.Id,
89-
Name = playerState.Name
90-
};
91-
playerInfo.Level = playerState.Level;
92-
playerInfo.State = playerState.State;
93-
playerInfo.Avatar = playerState.Avatar;
94-
respPlayerList.PlayerList.Add(playerInfo);
95-
}
86+
Id = playerState.Id,
87+
Name = playerState.Name,
88+
};
89+
playerInfo.Level = playerState.Level;
90+
playerInfo.State = playerState.State;
91+
playerInfo.Avatar = playerState.Avatar;
92+
respPlayerList.PlayerList.Add(playerInfo);
9693
}
97-
98-
await workChannel.WriteAsync(respPlayerList);
9994
}
95+
96+
await workChannel.WriteAsync(respPlayerList);
10097
}
101-
}
98+
}*/
Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
1-
using GameFrameX.Core.BaseHandler;
2-
using GameFrameX.NetWork.Messages;
1+
/*using GameFrameX.Core.BaseHandler;
2+
using GameFrameX.NetWork.Abstractions;
33
4-
namespace GameFrameX.Hotfix.Logic.Account.Login
4+
namespace GameFrameX.Hotfix.Logic.Account.Login;
5+
6+
[MessageMapping(typeof(ReqLogin))]
7+
internal class ReqLoginHandler : GlobalComponentHandler<LoginComponentAgent>
58
{
6-
[MessageMapping(typeof(ReqLogin))]
7-
internal class ReqLoginHandler : GlobalComponentHandler<LoginComponentAgent>
9+
protected override async Task ActionAsync()
810
{
9-
protected override async Task ActionAsync()
10-
{
11-
await ComponentAgent.OnLogin(NetWorkChannel, Message as ReqLogin);
12-
}
11+
await ComponentAgent.OnLogin(NetWorkChannel, Message as ReqLogin);
1312
}
14-
}
13+
}*/
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
using GameFrameX.Core.BaseHandler;
2-
using GameFrameX.NetWork.Messages;
1+
/*using GameFrameX.Core.BaseHandler;
2+
using GameFrameX.NetWork.Abstractions;
33
44
namespace GameFrameX.Hotfix.Logic.Account.Login;
55
@@ -10,4 +10,4 @@ protected override async Task ActionAsync()
1010
{
1111
await ComponentAgent.OnPlayerCreate(NetWorkChannel, Message as ReqPlayerCreate);
1212
}
13-
}
13+
}*/
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
using GameFrameX.Core.BaseHandler;
2-
using GameFrameX.NetWork.Messages;
1+
/*using GameFrameX.Core.BaseHandler;
2+
using GameFrameX.NetWork.Abstractions;
33
44
namespace GameFrameX.Hotfix.Logic.Account.Login;
55
@@ -10,4 +10,4 @@ protected override async Task ActionAsync()
1010
{
1111
await ComponentAgent.OnGetPlayerList(NetWorkChannel, Message as ReqPlayerList);
1212
}
13-
}
13+
}*/
Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,31 @@
11
using GameFrameX.Apps.Common.Session;
22
using GameFrameX.NetWork.HTTP;
33

4-
namespace GameFrameX.Hotfix.Logic.Http
4+
namespace GameFrameX.Hotfix.Logic.Http;
5+
6+
/// <summary>
7+
/// 获取在线人数
8+
/// http://localhost:20001/game/api/GetOnlinePlayer
9+
/// </summary>
10+
[HttpMessageMapping(typeof(GetOnlinePlayerHttpHandler))]
11+
public sealed class GetOnlinePlayerHttpHandler : BaseHttpHandler
512
{
613
/// <summary>
7-
/// 获取在线人数
8-
/// http://localhost:20001/game/api/GetOnlinePlayer
914
/// </summary>
10-
[HttpMessageMapping(typeof(GetOnlinePlayerHttpHandler))]
11-
public sealed class GetOnlinePlayerHttpHandler : BaseHttpHandler
15+
/// <param name="ip"></param>
16+
/// <param name="url"></param>
17+
/// <param name="parameters"></param>
18+
/// <returns></returns>
19+
public override Task<string> Action(string ip, string url, Dictionary<string, object> parameters)
1220
{
13-
class GetOnlinePlayerResponse
14-
{
15-
public int Count { get; set; }
16-
}
21+
var response = new GetOnlinePlayerResponse();
22+
response.Count = SessionManager.Count();
23+
var res = HttpResult.CreateOk($"当前在线人数:{response.Count}", JsonHelper.Serialize(response));
24+
return Task.FromResult(res);
25+
}
1726

18-
/// <summary>
19-
///
20-
/// </summary>
21-
/// <param name="ip"></param>
22-
/// <param name="url"></param>
23-
/// <param name="parameters"></param>
24-
/// <returns></returns>
25-
public override Task<string> Action(string ip, string url, Dictionary<string, object> parameters)
26-
{
27-
GetOnlinePlayerResponse response = new GetOnlinePlayerResponse();
28-
response.Count = SessionManager.Count();
29-
var res = HttpResult.CreateOk($"当前在线人数:{response.Count}", response);
30-
return Task.FromResult(res);
31-
}
27+
private class GetOnlinePlayerResponse
28+
{
29+
public int Count { get; set; }
3230
}
3331
}

0 commit comments

Comments
 (0)