DataConvert 관련 예외처리 코드 추가

This commit is contained in:
kyh
2024-07-11 14:16:48 +09:00
parent bea301ffd7
commit 7736fbe482
2 changed files with 69 additions and 14 deletions

View File

@@ -18,6 +18,7 @@ using DevExpress.Utils.Extensions;
using static BitgetAPI.CommonProperty;
using DateTime = System.DateTime;
using DevExpress.Xpo.Logger;
using DevExpress.XtraTreeList.Filtering.Provider;
namespace BitgetAPI.WebService
{
@@ -316,16 +317,23 @@ namespace BitgetAPI.WebService
//Thread.Sleep(100);
byte[] buffer = new byte[1024];
byte[] buffer = new byte[4096 * 10];
WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
message = "";
// 수신한 데이터 처리
message = System.Text.Encoding.UTF8.GetString(buffer, 0, result.Count);
if (!ValidateJSON(message))
if (tempStrData == "") {
if (!ValidateJSON(message))
{
tempStrData = message;
continue;
}
}
else
{
tempStrData += message;
if (!ValidateJSON(message))
if (!ValidateJSON(tempStrData))
{
continue;
}
@@ -334,11 +342,31 @@ namespace BitgetAPI.WebService
message = tempStrData;
}
}
var datalist = JsonConvert.DeserializeObject<Dictionary<string, object>>(message);
lock (obj)
if (message.Contains("{\"action"))
{
webSocketDataList.Add(datalist);
}
string[] separatingStrings = { "{\"action" };
var splitData = message.Split(separatingStrings, System.StringSplitOptions.RemoveEmptyEntries);
foreach (var item in splitData)
{
var temp = "{\"action" + item;
try
{
var datalist = JsonConvert.DeserializeObject<Dictionary<string, object>>(temp);
lock (obj)
{
webSocketDataList.Add(datalist);
}
}
catch (JsonReaderException)
{
}
}
}
#region 접어 둘거
//if (datalist.ContainsKey("data"))
@@ -661,7 +689,33 @@ namespace BitgetAPI.WebService
{
try
{
JToken.Parse(s);
if (s.Contains("{\"action"))
{
string[] separatingStrings = { "{\"action" };
var splitData = s.Split(separatingStrings, System.StringSplitOptions.RemoveEmptyEntries);
bool flag = true;
foreach (var item in splitData)
{
var temp = "{\"action" + item;
try
{
JToken.Parse(temp);
}
catch (JsonReaderException)
{
flag = false;
}
}
return flag;
}
else
{
JToken.Parse(s);
}
return true;
}
catch (JsonReaderException)
@@ -744,8 +798,8 @@ namespace BitgetAPI.WebService
if (candleDataList.Count == 0)
candleDataList.Add(candleData);
else
{
var lastCandleData_Edit = candleDataList.ToList();
{
var lastCandleData_Edit = candleDataList.OrderBy(t => t.Argument).ToList();
// 마지막 시간 데이터 가져오기
var lastCandleData = lastCandleData_Edit.Find(j => j.Argument == lastCandleData_Edit.Max(i => i.Argument));