[성현모] Socket 응답 추가
This commit is contained in:
@ -46,6 +46,10 @@
|
||||
<level value="SOCKET" />
|
||||
<foreColor value="DarkCyan" />
|
||||
</mapping>
|
||||
<mapping>
|
||||
<level value="CONTROLLER" />
|
||||
<foreColor value="DarkGreen" />
|
||||
</mapping>
|
||||
</appender>
|
||||
|
||||
<appender name="file" type="log4net.Appender.RollingFileAppender">
|
||||
|
||||
Binary file not shown.
14
Projects/HubX/HubX.Library/Enums/EnumResult.cs
Normal file
14
Projects/HubX/HubX.Library/Enums/EnumResult.cs
Normal file
@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace HubX.Library.Enums
|
||||
{
|
||||
public enum EnumResult
|
||||
{
|
||||
Success = 1,
|
||||
Failed = 2,
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,5 @@
|
||||
using DB.HubXDB;
|
||||
using HubX.Library.Enums;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@ -9,17 +10,18 @@ namespace HubX.Library.Http.Packet
|
||||
{
|
||||
public class Request_InsertUniqueKey
|
||||
{
|
||||
public string Identity { get; set; }
|
||||
public string Identity { get; set; } = string.Empty;
|
||||
|
||||
public string? Data1 { get; set; }
|
||||
public string? Data2 { get; set; }
|
||||
public string? Data3 { get; set; }
|
||||
public string? Data4 { get; set; }
|
||||
public string? Data5 { get; set; }
|
||||
public string? Data1 { get; set; } = string.Empty;
|
||||
public string? Data2 { get; set; } = string.Empty;
|
||||
public string? Data3 { get; set; } = string.Empty;
|
||||
public string? Data4 { get; set; } = string.Empty;
|
||||
public string? Data5 { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
public class Response_InsertUniqueKy
|
||||
{
|
||||
|
||||
public string? Identity { get; set; } = string.Empty;
|
||||
public string? Result { get; set; } = EnumResult.Success.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using DB.HubXDB;
|
||||
using Azure.Core;
|
||||
using DB.HubXDB;
|
||||
using HubX.Library.Http.Packet;
|
||||
using HubX.Library.Socket.Object;
|
||||
using HubX.Library.Socket.Session;
|
||||
@ -15,16 +16,19 @@ namespace HubX.Library.Socket.Packet
|
||||
|
||||
public class PacketHandler
|
||||
{
|
||||
public static void C2S_INSERT_UniqueKeyHandler(PacketSession session, ArraySegment<byte> buffer)
|
||||
public static async void C2S_INSERT_UniqueKeyHandler(PacketSession session, ArraySegment<byte> buffer)
|
||||
{
|
||||
var recvData = Encoding.UTF8.GetString(buffer);
|
||||
|
||||
//json으로 요청인지 확인
|
||||
bool isJsonRequest = true;
|
||||
|
||||
//convert to object
|
||||
var jsonObject = recvData.ToObject<C2S_INSERT_UniqueKey>();
|
||||
//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<Request_InsertUniqueKey,Response_InsertUniqueKy>("https://127.0.0.1:9000/UniqueKey/InsertUniqueKey", request);
|
||||
SystemX.Core.Communication.Http http = new();
|
||||
var res = await http.PostJsonAsync<Request_InsertUniqueKey,Response_InsertUniqueKy>("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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,9 +49,6 @@ namespace HubX.Library.Socket.Packet
|
||||
|
||||
void MakePacket<T>(PacketSession session, ArraySegment<byte> 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);
|
||||
|
||||
@ -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<byte> 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<byte>(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<byte>(sendBuffer));
|
||||
}
|
||||
|
||||
public override void OnConnected(EndPoint endPoint)
|
||||
{
|
||||
Log4net.WriteLine($"OnConnected : {endPoint}", LogType.SOCKET);
|
||||
Log4net.WriteLine($"OnConnected:{endPoint}", LogType.SOCKET);
|
||||
Client = ObjectManager.Instance.Add<Client>();
|
||||
{
|
||||
Client.Session = this;
|
||||
@ -39,13 +39,13 @@ namespace HubX.Library.Socket.Session
|
||||
|
||||
public override void OnRecvPacket(ArraySegment<byte> 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)
|
||||
|
||||
@ -19,7 +19,11 @@ namespace HubX.Server.Controllers
|
||||
[HttpPost]
|
||||
public async Task<IResult> 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);
|
||||
}
|
||||
|
||||
@ -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<HubXContext>();
|
||||
|
||||
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<HubXContext>();
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user