From cbd8a29ba8787017d66965ae27bb4d5853873f61 Mon Sep 17 00:00:00 2001 From: SHM Date: Tue, 22 Apr 2025 09:31:05 +0900 Subject: [PATCH] =?UTF-8?q?[=EC=84=B1=ED=98=84=EB=AA=A8]=20Socket=20?= =?UTF-8?q?=EC=9D=91=EB=8B=B5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Projects/DLL/SystemX.Core.dll | Bin 32256 -> 32768 bytes Projects/HubX/Config/log4net.config | 4 ++ .../DBPatch/sqlScripts/dacpac/HubX.DB.dacpac | Bin 3046 -> 3048 bytes .../HubX/HubX.Library/Enums/EnumResult.cs | 14 ++++ .../HubX/HubX.Library/Http/Packet/Packet.cs | 16 +++-- .../Socket/Packet/PacketHandler.cs | 29 +++++++-- .../Socket/Packet/ServerPacketManager.cs | 3 - .../Socket/Session/ClientSession.cs | 24 +++---- .../Controllers/UniqueKeyController.cs | 4 ++ .../HubX.Server/Services/UniqueKeyService.cs | 60 ++++++++++-------- .../Communication/Socket/Session.cs | 2 - .../SystemX.Core/Log4net/Log4net.cs | 22 ++++++- 12 files changed, 119 insertions(+), 59 deletions(-) create mode 100644 Projects/HubX/HubX.Library/Enums/EnumResult.cs diff --git a/Projects/DLL/SystemX.Core.dll b/Projects/DLL/SystemX.Core.dll index f5405336d5548573f3c9cb03f2b4dee6d1409281..6dd3b485c10b90c6b4ef1ec55fff7f99563b5d15 100644 GIT binary patch delta 13967 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 Cmyh`X delta 13778 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 + + + + diff --git a/Projects/HubX/DBPatch/sqlScripts/dacpac/HubX.DB.dacpac b/Projects/HubX/DBPatch/sqlScripts/dacpac/HubX.DB.dacpac index 6243de08400f9e3bf73fd9d382008cd0b73a9b8d..0d0791935801faba146beca0792a9c55dbf50944 100644 GIT binary patch delta 664 zcmV;J0%!f^7w8uZP)h>@6aWAK2mr}Tu?+D90?A9W{{({p0?A90ga+sd$xD`6J$-YD zDU)>vK!1Y}AOc2&1gWZ~6Deu;j&TwzfHStKCjGT8`bqtTngnQ5WmXj%eD6K?9G`3Z z*N>m^<7-`6-MH|Xj`nIqU6m!v0J@!Li;g&|1Mq-`YidLH0B2KQ}=pUvvx;(-2G8X~UG z>3X9(?V=$JFW)P`U46*OPiG%S5Ml%o2P~-*? z^n4F~FaZcVkzHYrS~lffOo*T#257)^Wj(^|qim_}97>);D^qZr(Yn`Z)y??n0=P)h>@6aWAK2mr}Tli3N}0?A90w+b}^ y$xD;&3OEAEOOq%II|<24mRdc1bBQUFYzr>}$xD-+3mgH@le!Bg2CE7H0001GJ1|lJ delta 662 zcmV;H0%`r|7v>iXP)h>@6aWAK2msSUu?+D90@FgX{{({p0@Fg1ga+sd(?XV7Vr%4_ zCzEvtK!0mUAOc2&1gWZ~6Deu;9%E*#0M6K^n)KJY=qL3TY7(GLm04A6@V)okb9}Dt zUq61vcdt$DeB(+B*(NUXq3iIL$x^gWiQAdV3*Ec){kwQY*@F^KqIE2w)rtFT%wYk5 zX3xB#+HV9?Qp?KtOg2Ej)S4^X7L=5MEmwlp;(t3emIPpkFo4*#T^%RhP`0N}e52%n zDB;NSyM`U*ncq?14BNSt)ZgT>(_%+hLfUx^0J7#)^();P8^!EBYDQoR-PshmLQN6c| zm-@yT3`x*z@c+iiyV`V$CoS)cqPAw!J%84Med5QR-19bhgro|pd4*6JKuV~!@h{#> zDdQCS_Si?5_-HEsXF@~tEHVAxb3d^R{m%2g9BiCFbGFxAGu?(U;CxXcaX}+XUi buffer) + public static async void C2S_INSERT_UniqueKeyHandler(PacketSession session, ArraySegment buffer) { var recvData = Encoding.UTF8.GetString(buffer); + //json으로 요청인지 확인 + bool isJsonRequest = true; + //convert to object var jsonObject = recvData.ToObject(); + //json 요청 아닐때 변환 if (jsonObject == null) { var recvDataList = recvData.Split(","); - jsonObject = new C2S_INSERT_UniqueKey { Identity = recvDataList[0], @@ -34,8 +38,10 @@ namespace HubX.Library.Socket.Packet Data4 = recvDataList[4], Data5 = recvDataList[5], }; + isJsonRequest = false; } - + + string result = string.Empty; //insert DB if(jsonObject != null) { @@ -47,14 +53,23 @@ namespace HubX.Library.Socket.Packet request.Data4 = jsonObject.Data4; request.Data5 = jsonObject.Data5; - SystemX.Core.Communication.Http http = new (); - var res = http.PostJsonAsync("https://127.0.0.1:9000/UniqueKey/InsertUniqueKey", request); + SystemX.Core.Communication.Http http = new(); + var res = await http.PostJsonAsync("https://127.0.0.1:9000/UniqueKey/InsertUniqueKey", request); + result = res.ToJson(); + + //json 요청이 아니면 변환 + if (isJsonRequest == false) + { + result = $"{res.Identity},{res.Result}"; + } } ClientSession clientSession = session as ClientSession; Client client = clientSession.Client; if (client == null) - return; + return; + + client.Session.Send(Encoding.UTF8.GetBytes(result) ,EnumMessageId.S2C_INSERT_UniqueKey); } } } diff --git a/Projects/HubX/HubX.Library/Socket/Packet/ServerPacketManager.cs b/Projects/HubX/HubX.Library/Socket/Packet/ServerPacketManager.cs index 79b7da6..6617da8 100644 --- a/Projects/HubX/HubX.Library/Socket/Packet/ServerPacketManager.cs +++ b/Projects/HubX/HubX.Library/Socket/Packet/ServerPacketManager.cs @@ -49,9 +49,6 @@ namespace HubX.Library.Socket.Packet void MakePacket(PacketSession session, ArraySegment buffer, ushort id) where T : new() { - // T pkt = new T(); - //pkt.MergeFrom(buffer.Array, buffer.Offset + 4, buffer.Count - 4); - if (CustomHandler != null) { CustomHandler.Invoke(session, buffer, id); diff --git a/Projects/HubX/HubX.Library/Socket/Session/ClientSession.cs b/Projects/HubX/HubX.Library/Socket/Session/ClientSession.cs index e11dad6..c51d555 100644 --- a/Projects/HubX/HubX.Library/Socket/Session/ClientSession.cs +++ b/Projects/HubX/HubX.Library/Socket/Session/ClientSession.cs @@ -16,21 +16,21 @@ namespace HubX.Library.Socket.Session public Client Client { get; set; } public int SessionId { get; set; } - public void Send(IMessage packet) + public void Send(ArraySegment packet, EnumMessageId resonseMessageId) { - //string msgName = packet.Descriptor.Name.Replace("_", string.Empty); - //EnumMessageId msgId = (EnumMessageId)Enum.Parse(typeof(EnumMessageId), msgName); - //ushort size = (ushort)packet.CalculateSize(); - //byte[] sendBuffer = new byte[size + 4]; - //Array.Copy(BitConverter.GetBytes((ushort)(size + 4)), 0, sendBuffer, 0, sizeof(ushort)); - //Array.Copy(BitConverter.GetBytes((ushort)msgId), 0, sendBuffer, 2, sizeof(ushort)); - //Array.Copy(packet.ToByteArray(), 0, sendBuffer, 4, size); - //Send(new ArraySegment(sendBuffer)); + Log4net.WriteLine($"Send:{Encoding.UTF8.GetString(packet)}", LogType.SOCKET); + + ushort size = (ushort)packet.Count; + byte[] sendBuffer = new byte[size + 4]; + Array.Copy(BitConverter.GetBytes((ushort)(size + 4)), 0, sendBuffer, 0, sizeof(ushort)); + Array.Copy(BitConverter.GetBytes((ushort)resonseMessageId), 0, sendBuffer, 2, sizeof(ushort)); + Array.Copy(packet.ToArray(), 0, sendBuffer, 4, size); + Send(new ArraySegment(sendBuffer)); } public override void OnConnected(EndPoint endPoint) { - Log4net.WriteLine($"OnConnected : {endPoint}", LogType.SOCKET); + Log4net.WriteLine($"OnConnected:{endPoint}", LogType.SOCKET); Client = ObjectManager.Instance.Add(); { Client.Session = this; @@ -39,13 +39,13 @@ namespace HubX.Library.Socket.Session public override void OnRecvPacket(ArraySegment buffer) { - Log4net.WriteLine($"OnRecvPacket : {Encoding.UTF8.GetString(buffer)}", LogType.SOCKET); + Log4net.WriteLine($"OnRecvPacket:{Encoding.UTF8.GetString(buffer)}", LogType.SOCKET); PacketManager.Instance.OnRecvPacket(this, buffer); } public override void OnDisconnected(EndPoint endPoint) { - Log4net.WriteLine($"OnDisconnected : {endPoint}", LogType.SOCKET); + Log4net.WriteLine($"OnDisconnected:{endPoint}", LogType.SOCKET); } public override void OnSend(int numOfBytes) diff --git a/Projects/HubX/HubX.Server/Controllers/UniqueKeyController.cs b/Projects/HubX/HubX.Server/Controllers/UniqueKeyController.cs index 9cd0cec..fc88648 100644 --- a/Projects/HubX/HubX.Server/Controllers/UniqueKeyController.cs +++ b/Projects/HubX/HubX.Server/Controllers/UniqueKeyController.cs @@ -19,7 +19,11 @@ namespace HubX.Server.Controllers [HttpPost] public async Task InsertUniqueKey(Request_InsertUniqueKey request) { + var guid = Guid.NewGuid(); + Log4net.WriteLine($"[Requeust]({guid}) UniqueKey/InsertUniqueKey::{request.ToJson()}", LogType.CONTROLLER); + Response_InsertUniqueKy res = await _uniqueKeyService.Request_InsertUniqueKey(request); + Log4net.WriteLine($"[Response]({guid}) UniqueKey/InsertUniqueKey::{res.ToJson()}", LogType.CONTROLLER); return Results.Ok(res); } diff --git a/Projects/HubX/HubX.Server/Services/UniqueKeyService.cs b/Projects/HubX/HubX.Server/Services/UniqueKeyService.cs index a7bddf5..54e2002 100644 --- a/Projects/HubX/HubX.Server/Services/UniqueKeyService.cs +++ b/Projects/HubX/HubX.Server/Services/UniqueKeyService.cs @@ -1,4 +1,5 @@ using DB.HubXDB; +using HubX.Library.Enums; using HubX.Library.Http.Packet; using SystemX.Core.DB; @@ -17,36 +18,43 @@ namespace HubX.Server.Services { Response_InsertUniqueKy response = new Response_InsertUniqueKy(); - var storage = new TStorage + if (request != null) { - CIdentity = request.Identity, - CData1 = request.Data1, - CData2 = request.Data2, - CData3 = request.Data3, - CData4 = request.Data4, - CData5 = request.Data5, + response.Identity = request.Identity; - CDateTime = DateTime.Now - }; - - - bool transactionResult = true; - bool isExist = false; - var context = _efCoreService.GetDBContext(); - - if (context != null) - { - using (var transaction = await context.CreateTransactionAsync()) + var storage = new TStorage { - await context.AddAsync(storage); - transactionResult = await context.CloseTransactionAsync(transaction); - } - } + CIdentity = request.Identity, + CData1 = request.Data1, + CData2 = request.Data2, + CData3 = request.Data3, + CData4 = request.Data4, + CData5 = request.Data5, - //db error - if (transactionResult == false) - { - + CDateTime = DateTime.Now + }; + + bool transactionResult = true; + var context = _efCoreService.GetDBContext(); + if (context != null) + { + using (var transaction = await context.CreateTransactionAsync()) + { + await context.AddAsync(storage); + transactionResult = await context.CloseTransactionAsync(transaction); + } + } + + //db error + if (transactionResult == false) + { + response.Result = EnumResult.Failed.ToString(); + Log4net.WriteLine($"Transaction Error", LogType.Error); + } + else + { + Log4net.WriteLine($"Transaction Success", LogType.DB); + } } return response; diff --git a/Projects/SystemX.Core/SystemX.Core/Communication/Socket/Session.cs b/Projects/SystemX.Core/SystemX.Core/Communication/Socket/Session.cs index d4edf48..4013e0c 100644 --- a/Projects/SystemX.Core/SystemX.Core/Communication/Socket/Session.cs +++ b/Projects/SystemX.Core/SystemX.Core/Communication/Socket/Session.cs @@ -72,8 +72,6 @@ namespace SystemX.Core.Communication public void Start(Socket socket) { - Log4net.WriteLine("Session Start"); - _socket = socket; _recvArgs.Completed += new EventHandler(OnRecvCompleted); diff --git a/Projects/SystemX.Core/SystemX.Core/Log4net/Log4net.cs b/Projects/SystemX.Core/SystemX.Core/Log4net/Log4net.cs index 34bb330..dd165c3 100644 --- a/Projects/SystemX.Core/SystemX.Core/Log4net/Log4net.cs +++ b/Projects/SystemX.Core/SystemX.Core/Log4net/Log4net.cs @@ -23,6 +23,7 @@ public enum LogType HTTP = 20, SOCKET = 21, + CONTROLLER = 22, } #endregion @@ -32,12 +33,14 @@ public static class Log4netCustomLevel public static readonly log4net.Core.Level DB = new log4net.Core.Level(10010, LogType.DB.ToString()); public static readonly log4net.Core.Level HTTP = new log4net.Core.Level(10020, LogType.HTTP.ToString()); public static readonly log4net.Core.Level SOCKET = new log4net.Core.Level(10021, LogType.SOCKET.ToString()); + public static readonly log4net.Core.Level CONTROLLER = new log4net.Core.Level(10022, LogType.CONTROLLER.ToString()); public static void SetCustomLevel(ILoggerRepository repo) { repo.LevelMap.Add(DB); repo.LevelMap.Add(HTTP); repo.LevelMap.Add(SOCKET); + repo.LevelMap.Add(CONTROLLER); } } #endregion @@ -56,9 +59,11 @@ public static class Log4net { string log4netConfigPath = @"../Config/log4net.config"; - if (File.Exists(log4netConfigPath) == false) + if (File.Exists(log4netConfigPath) == true) { - Console.WriteLine($"create log4netConfig: {log4netConfigPath}"); + File.Delete(log4netConfigPath); + + Console.WriteLine($"Create log4netConfig: {log4netConfigPath}"); File.WriteAllText(log4netConfigPath, Config); } @@ -152,6 +157,15 @@ public static class Log4net } break; } + case LogType.CONTROLLER: + { + Type? t = MethodBase.GetCurrentMethod()?.DeclaringType; + if (t != null) + { + Manager?.Logger.Log(t, Log4netCustomLevel.CONTROLLER, log, null); + } + break; + } } } @@ -210,6 +224,10 @@ public static class Log4net + + + +