如何解决什么时候在 milo opc ua 客户端调用 onServiceFault?
我有一个 milo opc ua 客户端,并使用 client.addFaultListener(this) 添加了一个故障侦听器,并且我已经覆盖了 onServiceFault 方法(以便它实现 ServiceFaultListener)。
当我关闭 opc ua 服务器时,我只收到来自 milo 的消息: [警告][org.eclipse.milo.opcua.sdk.cli] [4] Keep Alive failureCount=1 超过 failuresAllowed=0 但是我的错误监听器没有执行。
在什么情况下由milo执行onServiceFault监听器?
解决方法
当客户端实际收到来自服务器的 ServiceFault 响应时会调用它,这可能发生在多种情况下,其中之一是服务器不支持您调用的服务。
像您一样关闭服务器应该会在您添加到客户端的任何 SessionListener 上调用 onSessionInactive
。
我想我现在可以自己回答我的问题了:例如,当服务器连接丢失并且 milo 重新连接但订阅传输失败并且之后使用此无效订阅时,milo 将执行一个像这样的 ServiceFault 状态为 Bad_SubscriptionIdInvalid。
ServiceFault(responseHeader=ResponseHeader(timestamp=DateTime{utcTime=132556030188286769,javaDate=Wed Jan 20 08:56:58 CET 2021},requestHandle=116,serviceResult=StatusCode{name=Bad_SubscriptionIdInvalid,value=0x80280000,quality=bad},serviceDiagnostics=null,stringTable=[],additionalHeader=ExtensionObject{encoded=ByteString{bytes=null},encodingId=NodeId{ns=0,id=0}}))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。