如何解决服务器重启导致永无止境的 Bad_ServiceUnsupported 错误,onSubscriptionTransferFailed 未调用
我的 Milo 客户端 (sdk 0.4.1) 通过使用 UaSubscription 订阅服务器事件并且可以成功接收事件。但是一旦我重新启动服务器,客户端只会以以下形式无限循环记录错误:
[错误] 2021-06-11 17:29:11.467 [milo-netty-event-loop-0] UascClientMessageHandler - errorMessage=ErrorMessage{error=StatusCode{name=Bad_ServiceUnsupported, 值=0x800B0000,质量=坏},原因=空}
不幸的是,实现 onSubscriptionTransferFailed 方法无济于事,因为它从未被调用过。
client.getSubscriptionManager().addSubscriptionListener(new UaSubscriptionManager.SubscriptionListener() {
@Override
public void onSubscriptionTransferFailed(UaSubscription subscription,StatusCode statusCode) {
try {
LOGGER.info("onSubscriptionTransferFailed");
client.getSubscriptionManager().clearSubscriptions();
client.disconnect().get();
run(client,serverAddress,biConsumer,requestedPublishingInterval);
} catch (InterruptedException | ExecutionException e) {
LOGGER.error("Failed re-subscription: {}",e.getMessage(),e);
}
}
}
知道如何让客户端检测其当前问题并重新订阅服务器事件吗?
提前致谢。
更新: 找到这个提交 https://github.com/eclipse/milo/commit/e854374845e6c5f46a7b033c2c62cee2ee10622a 并且能够通过将 Milo 客户端 sdk 版本增加到 0.6.1 来解决问题。 0.5.3 版本应该也会修复它,但我没有测试它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。