Files
caliverse_server/ServerCore/ProudNet/ProudNetHelper.cs
2025-05-01 07:20:41 +09:00

72 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Google.Protobuf;
using Nettention.Proud;
using SESSION_ID = System.Int32;
namespace ServerCore;
//=============================================================================================
// ProudNet 관련 각종 지원 함수
//
// author : kangms
//
//=============================================================================================
public static class ProudNetHelper
{
private static RmiContext? m_rmi;
public static RmiContext compressRmi()
{
if (m_rmi == null)
{
m_rmi = RmiContext.ReliableSend.Clone();
m_rmi.compressMode = CompressMode.CM_None;
}
return m_rmi;
}
public static SESSION_ID getSessionId(this NetClientInfo netClientInfo)
{
return (SESSION_ID)netClientInfo.hostID;
}
public static HostID toHostID(this SESSION_ID sessionId)
{
return (HostID)sessionId;
}
public static SESSION_ID toSESSION_ID(this HostID hostId)
{
return (SESSION_ID)hostId;
}
public static string getNetClientPublicIp(this Nettention.Proud.NetServer netServer, HostID hostId)
{
var client_public_ip = string.Empty;
var found_client_info = netServer.GetClientInfo(hostId);
if (null == found_client_info)
{
Log.getLogger().debug($"Not found ProudNet.NetClientInfo !!! : HostId:{hostId}");
}
else
{
client_public_ip = found_client_info.tcpAddrFromServer.IPToString();
}
return client_public_ip;
}
}