websocket close하다가 null되는 현상처리(2일째에서 발생)
This commit is contained in:
@@ -217,22 +217,22 @@ namespace Million.Manager
|
||||
while (Flag)
|
||||
{
|
||||
ClientWebSocket webSocket = new ClientWebSocket();
|
||||
|
||||
var cancelToken = CancellationToken.None;
|
||||
try
|
||||
{
|
||||
await webSocket.ConnectAsync(new Uri(WebSocketUrl), CancellationToken.None);
|
||||
await webSocket.ConnectAsync(new Uri(WebSocketUrl), cancelToken);
|
||||
var dic = new List<Dictionary<string, object>>();
|
||||
dic.Add(new Dictionary<string, object>() { { "ticket", "test" } });
|
||||
dic.Add(new Dictionary<string, object>() { { "type", "trade" }, { "codes", CommonProperty.recentlyMarketOfPlaceList.Where(t => t.CoinFullName.Contains("KRW-")).Select(t => t.CoinFullName).ToList() } });
|
||||
|
||||
await SendMessage(webSocket, JsonConvert.SerializeObject(dic));
|
||||
|
||||
|
||||
|
||||
// 데이터 수신을 위한 반복문 시작
|
||||
while (webSocket.State == WebSocketState.Open && Flag)
|
||||
{
|
||||
byte[] buffer = new byte[1024 * 10];
|
||||
WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
|
||||
WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), cancelToken);
|
||||
|
||||
// 수신한 데이터 처리
|
||||
message = System.Text.Encoding.UTF8.GetString(buffer, 0, result.Count);
|
||||
@@ -265,11 +265,20 @@ namespace Million.Manager
|
||||
finally
|
||||
{
|
||||
if (webSocket.State == WebSocketState.Open)
|
||||
{
|
||||
await webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, webSocket.CloseStatusDescription, CancellationToken.None);
|
||||
}
|
||||
|
||||
webSocket.Dispose();
|
||||
{
|
||||
try
|
||||
{
|
||||
await webSocket.CloseAsync(webSocket.CloseStatus.Value, webSocket.CloseStatusDescription, cancelToken);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LogManager.WriteLog(e.Message + "\r\n오류 메세지 : " + message);
|
||||
}
|
||||
if(webSocket != null)
|
||||
webSocket.Dispose();
|
||||
|
||||
webSocket = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user