DataConvert 관련 예외처리 코드 추가
This commit is contained in:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user