초기커밋
This commit is contained in:
112
GameServer/Network/GameLoginListener.cs
Normal file
112
GameServer/Network/GameLoginListener.cs
Normal file
@@ -0,0 +1,112 @@
|
||||
|
||||
|
||||
using ServerCore;
|
||||
using ServerBase;
|
||||
using ServerCommon;
|
||||
using Nettention.Proud;
|
||||
|
||||
|
||||
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
public partial class GameLoginListener : ProudNetListener
|
||||
{
|
||||
public GameLoginListener( ServerLogicBase serverLogicBase
|
||||
, ModuleContext moduleContext)
|
||||
: base(serverLogicBase, moduleContext)
|
||||
{
|
||||
}
|
||||
|
||||
protected override bool onBindStubHandler()
|
||||
{
|
||||
// 수신 프로토콜 연결 하기
|
||||
{
|
||||
var stub = new PClientToGame.Stub();
|
||||
if (false == resisterStub(stub))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
stub.Message = onRecvProtocol;
|
||||
stub.P2PMotionSync = onRecvP2PMotionSync;
|
||||
}
|
||||
|
||||
{
|
||||
// 프로토콜 분리시 적용
|
||||
//var stub = new PGameProtocol.Stub();
|
||||
//if (false == resisterStub(stub))
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//stub.ProtocolHandler = onRecvGameProtocolHandler;
|
||||
}
|
||||
|
||||
ServerCore.Log.getLogger().info($"Success GameLoginListener.onBindStubHandler() - {toBasicString()}");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected override bool onAttachProxyAll()
|
||||
{
|
||||
var net_server = getNetServer();
|
||||
NullReferenceCheckHelper.throwIfNull(net_server, () => "net_server is null !!!");
|
||||
|
||||
var proxy = new PClientToGame.Proxy();
|
||||
if (false == resisterProxy(proxy))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
ServerCore.Log.getLogger().info($"Success GameLoginListener.onAttachProxyAll() - {toBasicString()}");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected override async Task<IEntityWithSession?> onNewEntityWithSession(NetClientInfo clientInfo)
|
||||
{
|
||||
return await Task.FromResult(new Player(clientInfo));
|
||||
}
|
||||
|
||||
protected override async Task onDisconnectedEntityWithSession(IEntityWithSession disconnectedEntity)
|
||||
{
|
||||
await Task.CompletedTask; //warning CS1998 회피 목적 !!!
|
||||
|
||||
var disconnected_user = disconnectedEntity as Player;
|
||||
NullReferenceCheckHelper.throwIfNull(disconnected_user, () => "disconnected_user is null !!!");
|
||||
|
||||
if (true == disconnected_user.isCompletedLogout())
|
||||
{
|
||||
Log.getLogger().debug($"Disconnection event received: Client disconnected By GameServer with CustomEvent(GameLogoutReq or UserKick) !!! - {disconnected_user.toBasicString()}");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.getLogger().debug($"Disconnection event received: Client disconnected By Client !!! - {disconnected_user.toBasicString()}");
|
||||
}
|
||||
|
||||
var task_serializer = disconnected_user as IWithTaskSerializer;
|
||||
NullReferenceCheckHelper.throwIfNull(task_serializer, () => $"task_serializer is null !!! - {disconnected_user.toBasicString()}");
|
||||
|
||||
_ = task_serializer.getTaskSerializer().postLogicFunc(async () =>
|
||||
{
|
||||
var game_logout_action = disconnected_user.getEntityAction<GameLogoutAction>();
|
||||
await game_logout_action.logoutUser();
|
||||
|
||||
}, "from onDisconnectedEntityWithSession()");
|
||||
}
|
||||
|
||||
protected override bool setMessageMaxLength()
|
||||
{
|
||||
var net_server = getNetServer();
|
||||
NullReferenceCheckHelper.throwIfNull(net_server, () => "net_server is null !!!");
|
||||
|
||||
//TODO: Constant.MAX_PACKET_SIZE, Constant.MAX_PACKET_SIZE <= ConfigParam 활용으로 수정
|
||||
net_server.SetMessageMaxLength(256_000, 256_000);
|
||||
return true;
|
||||
}
|
||||
|
||||
public override async Task onLogoutUserAllByKick()
|
||||
{
|
||||
await getGameServerLogic().getPlayerManager().logoutUserAllByKick();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user