广播聊天

This commit is contained in:
bob
2025-08-07 17:51:25 +08:00
parent 70bfe43a80
commit e1a4db89ae
19 changed files with 347 additions and 21 deletions

View File

@@ -1,16 +1,18 @@
using Fantasy;
using Fantasy.Async;
using Fantasy.Network;
using NB.Chat;
using NB.Game;
namespace NB.Gate;
public static class GateLoginHelper
{
#region 线
/// <summary>
/// 网关通知其他服务器上线
/// </summary>
/// <param name="self"></param>
/// <param name="gateUnit"></param>
public static async FTask<uint> Online(GateUnit gateUnit)
{
@@ -39,29 +41,34 @@ public static class GateLoginHelper
gateUnitSessionComponent.AccountID = gateUnit.AccountID;
//安排服务器,并通知进入
var gameSceneConfig = GameSceneHelper.GetSceneConfig(session);
var gameRouteId = gameSceneConfig.RouteId;
//连接到游戏中心服
var gameResponse = (Game2G_EnterResponse)await session.Scene.NetworkMessagingComponent.CallInnerRoute(
gameRouteId, new G2Game_EnterRequest()
{
AccountId = gateUnit.AccountID,
GateRouteId = session.RuntimeId
});
if (gameResponse.ErrorCode != 0)
//安排游戏服务器,并通知进入
var gameRouteId = await GameSceneHelper.Online(session.Scene, gateUnit.AccountID, session.RuntimeId);
if (gameRouteId <= 0)
{
return ErrorCode.OnlineSceneFailed;
}
routeComponent.AddAddress(RouteType.GameRoute, gameResponse.RoleRouteId);
Log.Info($"连接游戏服成功gameRouteId:{gameRouteId}");
routeComponent.AddAddress(RouteType.GameRoute, gameRouteId);
gateUnit.GameSceneRouteId = gameRouteId;
// //安排进入的聊天服
var chatRouteId = await ChatSceneHelper.Online(session.Scene, gateUnit.AccountID, session.RuntimeId);
if (chatRouteId <= 0)
{
return ErrorCode.OnlineSceneFailed;
}
routeComponent.AddAddress(RouteType.ChatRoute, chatRouteId);
gateUnit.ChatSceneRouteId = chatRouteId;
Log.Info($"连接聊天服成功gameRouteId:{gameRouteId}");
return ErrorCode.Successful;
}
#endregion
#region 线
/// <summary>
/// 网关通知其他服务器下线
/// </summary>
@@ -69,7 +76,11 @@ public static class GateLoginHelper
/// <param name="gateUnit"></param>
public static async FTask<uint> Offline(GateUnit gateUnit)
{
await FTask.CompletedTask;
//通知服务器下线
return ErrorCode.Successful;
}
#endregion
}