Files
hjha-server/ServerCore/NetWork/ActorSession.cs
xiaoou e9616125ce feat: initial commit - HJHA game server full source
6 major server modules (PdkFriendServer/GlobalSever/ServerCore/GameModule/GameNetModule) +
game logic (GameFix/GameDAL/ServerData) +
network layer (NetWorkMessage) +
data layer (ObjectModel) +
utilities (MrWu/Core/Config/CloudAPI/dll) +
adapters (zyxAdapter/base)

.NET 8.0 C# solution, 16 projects, 958 source files
2026-07-07 12:02:15 +08:00

60 lines
1.6 KiB
C#

using System;
using System.Net;
using System.Threading;
using ActorCore;
using MrWu.Debug;
using NetWorkMessage;
using Server.Core;
using Server.Net;
namespace Server.Net
{
/// <summary>
/// ActorSession
/// </summary>
public class ActorSession : BaseSession
{
/// <summary>
/// 实例Id
/// </summary>
public long InstanceId { get; set; }
private static long IdGenerate = 0;
private long GetInstanceId()
{
if (InstanceId >= long.MaxValue)
{
IdGenerate = 0;
}
IdGenerate++;
return IdGenerate;
}
public ActorSession(long id, TService service, Action<long> disposedAction) : base(id, service, disposedAction)
{
InstanceId = GetInstanceId();
Debug.Info($"创建实例:{InstanceId}");
}
public void Send(ActorId fromActorId,ActorId actorId, IMessage message)
{
this.LastSendTime = TimeInfo.Instance.ClientNow();
Debug.Log($"Session Send {message} {Thread.CurrentThread.ManagedThreadId}");
try
{
(uint opcode, MemoryBuffer memoryBuffer) =
MessageSerializeHelper.ToActorMemoryBuffer(Service, fromActorId, actorId, message);
Service.Send(Id,memoryBuffer);
}
catch (Exception e)
{
Debug.Error($"回复消息报错?{e.ToString()} {message?.GetType()}");
}
}
}
}