Skip to content

Commit b434eaa

Browse files
committed
feat(登录): 添加玩家上下线时向发现中心发送通知
在玩家登录和登出时,新增向发现中心发送玩家上下线通知的功能,以便服务发现系统能够及时更新玩家状态
1 parent 0e3d3a7 commit b434eaa

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

GameFrameX.Hotfix/Logic/Player/Login/PlayerComponentAgent.cs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,12 @@
3030
// ==========================================================================================
3131

3232

33-
3433
using GameFrameX.Apps.Common.Session;
3534
using GameFrameX.Apps.Player.Player.Component;
3635
using GameFrameX.Apps.Player.Player.Entity;
36+
using GameFrameX.Hotfix.Logic.DiscoveryCenter;
3737
using GameFrameX.Hotfix.Logic.Server;
38+
using GameFrameX.Proto.BuiltIn;
3839

3940
namespace GameFrameX.Hotfix.Logic.Player.Login;
4041

@@ -45,6 +46,15 @@ public async Task OnLogout()
4546
//移除在线玩家
4647
var serverComp = await ActorManager.GetComponentAgent<ServerComponentAgent>();
4748
await serverComp.RemoveOnlineRole(ActorId);
49+
50+
var reqRegisterPlayer = new ReqDiscoverCenterPlayerOffline
51+
{
52+
PlayerId = ActorId,
53+
ServerId = GlobalSettings.CurrentSetting.ServerId,
54+
ServerInstanceId = GlobalSettings.CurrentSetting.ServerInstanceId,
55+
};
56+
var discoveryCenterComponentAgent = await ActorManager.GetComponentAgent<DiscoveryCenterComponentAgent>();
57+
discoveryCenterComponentAgent.SendToDiscoveryCenter(reqRegisterPlayer);
4858
//下线后会被自动回收
4959
SetAutoRecycle(true);
5060
QuartzTimer.Remove(ScheduleIdSet);
@@ -85,5 +95,14 @@ public async Task OnPlayerLogin(INetWorkChannel workChannel, ReqPlayerLogin reqL
8595
//加入在线玩家
8696
var serverComp = await ActorManager.GetComponentAgent<ServerComponentAgent>();
8797
await serverComp.AddOnlineRole(ActorId);
98+
99+
var reqRegisterPlayer = new ReqDiscoverCenterPlayerOnline()
100+
{
101+
PlayerId = ActorId,
102+
ServerId = GlobalSettings.CurrentSetting.ServerId,
103+
ServerInstanceId = GlobalSettings.CurrentSetting.ServerInstanceId,
104+
};
105+
var discoveryCenterComponentAgent = await ActorManager.GetComponentAgent<DiscoveryCenterComponentAgent>();
106+
discoveryCenterComponentAgent.SendToDiscoveryCenter(reqRegisterPlayer);
88107
}
89108
}

0 commit comments

Comments
 (0)