|
@@ -134,20 +134,23 @@ namespace YSAI.Opc.ua.client
|
|
|
{
|
|
{
|
|
|
try
|
|
try
|
|
|
{
|
|
{
|
|
|
- if (!ReferenceEquals(session, clientSession))
|
|
|
|
|
|
|
+ if (!object.ReferenceEquals(session, this.clientSession))
|
|
|
{
|
|
{
|
|
|
|
|
+ OnEventHandler?.Invoke(this, new Event() { Message = $"事件对象不匹配", Step = Steps.事件对象不匹配 });
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
if (ServiceResult.IsBad(e.Status))
|
|
if (ServiceResult.IsBad(e.Status))
|
|
|
{
|
|
{
|
|
|
- //设置连接状态
|
|
|
|
|
|
|
+ if (reconnectPeriod <= 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
IsConnected = false;
|
|
IsConnected = false;
|
|
|
- ConnectedCounet = 0;
|
|
|
|
|
if (sessionReconnectHandler == null)
|
|
if (sessionReconnectHandler == null)
|
|
|
{
|
|
{
|
|
|
sessionReconnectHandler = new SessionReconnectHandler();
|
|
sessionReconnectHandler = new SessionReconnectHandler();
|
|
|
sessionReconnectHandler.BeginReconnect(session, reconnectPeriod * 1000, Server_ReconnectComplete);
|
|
sessionReconnectHandler.BeginReconnect(session, reconnectPeriod * 1000, Server_ReconnectComplete);
|
|
|
- OnEventHandler?.Invoke(this, new Event() { Message = $"连接断开,启动重连", Step = Steps.异常断开事件 });
|
|
|
|
|
|
|
+ OnEventHandler?.Invoke(this, new Event() { Message = $"异常断开,启动重连", Step = Steps.异常断开 });
|
|
|
}
|
|
}
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
@@ -158,13 +161,13 @@ namespace YSAI.Opc.ua.client
|
|
|
if (IsConnected && ConnectedCounet == 0)
|
|
if (IsConnected && ConnectedCounet == 0)
|
|
|
{
|
|
{
|
|
|
ConnectedCounet = 1;
|
|
ConnectedCounet = 1;
|
|
|
- OnEventHandler?.Invoke(this, new Event() { Message = $"已连接", State = true, Step = Steps.连接成功事件 });
|
|
|
|
|
|
|
+ OnEventHandler?.Invoke(this, new Event() { Message = $"已连接", State = true, Step = Steps.连接成功 });
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
|
{
|
|
{
|
|
|
- LogHelper.Error($"{LogHead}(处理会话中的保持活动事件异常):{ex.Message}");
|
|
|
|
|
|
|
+ OnEventHandler?.Invoke(this, new Event() { Message = $"处理会话中的保持活动事件异常:{ex.Message}", Step = Steps.异常 });
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -175,20 +178,19 @@ namespace YSAI.Opc.ua.client
|
|
|
{
|
|
{
|
|
|
try
|
|
try
|
|
|
{
|
|
{
|
|
|
- //忽略来自被丢弃对象的回调.
|
|
|
|
|
if (!ReferenceEquals(sender, sessionReconnectHandler))
|
|
if (!ReferenceEquals(sender, sessionReconnectHandler))
|
|
|
{
|
|
{
|
|
|
|
|
+ OnEventHandler?.Invoke(this, new Event() { Message = $"事件对象不匹配", Step = Steps.事件对象不匹配 });
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
clientSession = sessionReconnectHandler.Session;
|
|
clientSession = sessionReconnectHandler.Session;
|
|
|
sessionReconnectHandler.Dispose();
|
|
sessionReconnectHandler.Dispose();
|
|
|
sessionReconnectHandler = null;
|
|
sessionReconnectHandler = null;
|
|
|
-
|
|
|
|
|
- OnEventHandler?.Invoke(this, new Event() { Message = $"连接断开,已重连", State = true, Step = Steps.重连成功事件 });
|
|
|
|
|
|
|
+ OnEventHandler?.Invoke(this, new Event() { Message = $"重连成功", State = true, Step = Steps.重连成功 });
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
|
{
|
|
{
|
|
|
- LogHelper.Error($"{LogHead}(处理从重新连接处理程序完成的重新连接事件异常):{ex.Message}");
|
|
|
|
|
|
|
+ OnEventHandler?.Invoke(this, new Event() { Message = $"处理重新连接处理程序完成的重新连接事件异常:{ex.Message}", Step = Steps.异常 });
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -211,11 +213,11 @@ namespace YSAI.Opc.ua.client
|
|
|
param.AddOrUpdate(addressDetails.AddressName, addressValue, (k, v) => addressValue);
|
|
param.AddOrUpdate(addressDetails.AddressName, addressValue, (k, v) => addressValue);
|
|
|
|
|
|
|
|
//响应
|
|
//响应
|
|
|
- OnEventParamHandler?.Invoke(this, new EventParam() { Message = $"点位数据更新", Step = Steps.订阅通知事件, State = true, Params = param });
|
|
|
|
|
|
|
+ OnEventParamHandler?.Invoke(this, new EventParam() { Message = $"点位数据更新", Step = Steps.订阅通知, State = true, Params = param });
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
|
{
|
|
{
|
|
|
- OnEventHandler?.Invoke(this, new Event() { Message = ex.Message, Step = Steps.订阅通知事件 });
|
|
|
|
|
|
|
+ OnEventHandler?.Invoke(this, new Event() { Message = ex.Message, Step = Steps.订阅通知 });
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|