У меня следующий код для клиента OPC UA C #. Я заметил, что если сервер время от времени перезагружается, то клиент C # теряет подписку.
m_Subscription = new Subscription(session);
m_Subscription.PublishingEnabled = true;
m_Subscription.PublishingInterval = publishingInterval;
m_Subscription.DataChanged += SubscriptionOnDataChanged;
m_Subscription.NewEvents += SubscriptionOnNewEvents;
m_Subscription.StatusChanged += SubscriptionOnStatusChanged;
m_Subscription.Lifetime = 10000;
m_Subscription.MaxKeepAliveTime = 10000;
m_Subscription.Create();
С помощью приведенного выше кода я теряю время от времени подписку, что означает, что SubscriptionOnDataChanged не вызывается. Я читал документ, в котором говорится: «Запрошенное время жизни может быть переопределено сервером. Клиенты должны проверить свойство CurrentLifetime после создания или изменения подписки, чтобы увидеть значение, которое сервер фактически будет использовать».
Что это значит для клиента C #? Может ли тело показать или объяснить мне? Нужно ли заново создавать подписку при возникновении события StatusChanged?