|
@@ -36,6 +36,33 @@ namespace Vinno.vCloud.Common.FIS.Notification
|
|
|
_webSocket.Opened += OnOpened;
|
|
|
_webSocket.Error += OnError;
|
|
|
_webSocket.DataReceived += OnDataReceived;
|
|
|
+ _webSocket.Closed += OnClosed;
|
|
|
+ var xx = _webSocket.EnableAutoSendPing;
|
|
|
+ var xs = _webSocket.AutoSendPingInterval;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void OnClosed(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ Logger.WriteLineInfo($"FISWebsocket OnClosed Invoked");
|
|
|
+ Dispose();
|
|
|
+ Retry();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ Logger.WriteLineError($"FISWebsocket OnClosed Error:{ex}");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void Retry()
|
|
|
+ {
|
|
|
+ if (_retryCount < 2)
|
|
|
+ {
|
|
|
+ _retryCount++;
|
|
|
+ CreateWebSocket();
|
|
|
+ Connect();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -157,25 +184,21 @@ namespace Vinno.vCloud.Common.FIS.Notification
|
|
|
|
|
|
private void OnOpened(object sender, EventArgs e)
|
|
|
{
|
|
|
+ _retryCount = 0;
|
|
|
Logger.WriteLineInfo($"FISWebsocket OnOpened Invoked");
|
|
|
}
|
|
|
|
|
|
private void OnError(object sender, ErrorEventArgs e)
|
|
|
{
|
|
|
- Logger.WriteLineInfo($"FISWebsocket OnError Invoked");
|
|
|
try
|
|
|
{
|
|
|
+ Logger.WriteLineInfo($"FISWebsocket OnError Invoked");
|
|
|
Dispose();
|
|
|
- if (_retryCount < 1)
|
|
|
- {
|
|
|
- _retryCount++;
|
|
|
- CreateWebSocket();
|
|
|
- Connect();
|
|
|
- }
|
|
|
+ Retry();
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- Logger.WriteLineError($"FISWebsocket OnError Dispose Websocket Error:{ex}");
|
|
|
+ Logger.WriteLineError($"FISWebsocket OnError Error:{ex}");
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -193,14 +216,22 @@ namespace Vinno.vCloud.Common.FIS.Notification
|
|
|
|
|
|
public void Dispose()
|
|
|
{
|
|
|
- if (_webSocket != null)
|
|
|
+ try
|
|
|
+ {
|
|
|
+ if (_webSocket != null)
|
|
|
+ {
|
|
|
+ _webSocket.Opened -= OnOpened;
|
|
|
+ _webSocket.Error -= OnError;
|
|
|
+ _webSocket.Closed -= OnClosed;
|
|
|
+ _webSocket.DataReceived -= OnDataReceived;
|
|
|
+ _webSocket.Close();
|
|
|
+ _webSocket.Dispose();
|
|
|
+ _webSocket = null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
{
|
|
|
- _webSocket.Opened -= OnOpened;
|
|
|
- _webSocket.Error -= OnError;
|
|
|
- _webSocket.DataReceived -= OnDataReceived;
|
|
|
- _webSocket.Close();
|
|
|
- _webSocket.Dispose();
|
|
|
- _webSocket = null;
|
|
|
+ Logger.WriteLineError($"FISWebsocket Dispose Error:{ex}");
|
|
|
}
|
|
|
}
|
|
|
}
|