提交示例代码
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
using Fantasy.Async;
|
||||
using Fantasy.Network;
|
||||
using Fantasy.Network.Interface;
|
||||
// ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract
|
||||
|
||||
namespace Fantasy;
|
||||
|
||||
public sealed class C2G_ExitRequestHandler : MessageRPC<C2G_ExitRequest, G2C_ExitResponse>
|
||||
{
|
||||
protected override async FTask Run(Session session, C2G_ExitRequest request, G2C_ExitResponse response, Action reply)
|
||||
{
|
||||
session.RemoveComponent<GateUnitFlagComponent>();
|
||||
await FTask.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using Fantasy.Async;
|
||||
using Fantasy.Network;
|
||||
using Fantasy.Network.Interface;
|
||||
|
||||
namespace Fantasy;
|
||||
|
||||
public sealed class C2G_LoginRequestHandler : MessageRPC<C2G_LoginRequest, G2C_LoginResponse>
|
||||
{
|
||||
protected override async FTask Run(Session session, C2G_LoginRequest request, G2C_LoginResponse response, Action reply)
|
||||
{
|
||||
if (string.IsNullOrEmpty(request.UserName))
|
||||
{
|
||||
// 这里返回的1代表账号信息是空的。
|
||||
response.ErrorCode = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
var scene = session.Scene;
|
||||
// 添加一个GateUnitFlagComponent组件,用来Session断开、或者传递数据时使用。
|
||||
var gateUnitFlagComponent = session.GetOrAddComponent<GateUnitFlagComponent>();
|
||||
// 上线到Gate
|
||||
var gateUnit = GateUnitHelper.Online(scene, request.UserName, session);
|
||||
// 设置GateUnitFlagComponent的GateUnitId
|
||||
gateUnitFlagComponent.GateUnitId = gateUnit.Id;
|
||||
// 登录到其他服务器
|
||||
await GateLoginHelper.Online(session, gateUnit, session.RunTimeId);
|
||||
Log.Debug($"gateUnit : {gateUnit.UserName}");
|
||||
await FTask.CompletedTask;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user