Issue

这是我的Java程序使用的OPC UA MILO客户端SDK:https://github.com/eclipse/milo/blob/master/opc-ua-sdk/sdk-client/src/main/java/org/eclipse/milo/opcua/sdk/client/OpcUaClient.java

我有一个OPC UA客户端坐在一个转发代理(Squid)后面,并希望try 通过squid代理连接,以连接到TCP端口的OPC UA服务器.它是TCP连接之上的OPC协议.

这里的问题是,上面链接中的SDK客户端not是否支持转发代理连接,我可以在代码中调用该连接来为到达OPC UA服务器的请求建立 tunel .我有一种感觉,我们将不得不转向新的客户端SDK.但是,由于我在我们的提升和换班项目中有一个紧迫的截止日期要满足,所以最理想的做法是尽可能少地进行代码更改.

由于当前基础设施的设计,任何到外部系统的出站请求都必须通过这个转发代理,而不是通过一个方向连接.

Intent

  1. 我想知道在技术上是否可以通过转发代理将OPC UA连接(基于订阅)从客户端到服务器.当然,不用说,转发代理首先必须通过squid ACL配置允许端口.然而,我的问题仍然是,—OPC UA连接是否允许连接通过转发代理摆在首位,因为我已经做了关于这个主题的研究,并不能提供任何有关这方面的信息.

  2. 如果第1点在技术上是可行的,我将非常感谢任何在这个领域有经验的人提供关于如何在Java代码中处理这个问题的建议,而MILO客户端SDK仍然完好无损,或者告诉我一个Java客户端SDK,我可以在Java代码中使用,以允许连接到转发代理之前, tunel 请求到OPC UA服务器.

谢谢

推荐答案

我认为,如果您将Squid配置为SOCKS5代理,这在技术上是可行的,但是Milo使用Netty库进行网络连接,Netty默认情况下不会查找socksProxyHost和相关的Java系统属性;它需要在管道的末端显式添加SOCKS处理程序.在当前版本中,这种配置似乎不可能实现.

Java相关问答推荐

伪类focus-in不适用于PFA中的选项卡

使用ExecutorService时在ThreadFactory中触发自定义newThread函数

无法在Java中将hhmmss格式的时间解析为LocalTime

将linkedHashMap扩展到Java中的POJO类

如何让JFileChooser(DIRECTORIES_ONLY)从FolderName中的空白开始?

对运行在GraalVM-21上的JavaFX应用程序使用分代ZGC会警告不支持JVMCI,为什么?

Hibernate EmptyInterceptor可以工作,但不能拦截器

计算两个浮点数之间的距离是否对称?

无法使用Java&;TestContainers获取AWS SQS队列的属性

由于 list 中的权限错误,Android未生成

如何解释Java中for-each循环中对Iterable的强制转换方法引用?

当Volatile关键字真的是必要的时候?

使用Jolt将字段转换为列表

扩展视图高度,并将其拖动到较低的视图上,而不是将其向下推?

垃圾回收器是否真的删除超出作用域的对象?

根本不显示JavaFX阿拉伯字母

向Java进程发送`kill-11`会引发NullPointerException吗?

在java中使用不同的application.properties-jar而不使用Spring

如何在Spring Security中设置一个任何人都可以打开的主页?

Spring Integration SFTP 连接失败 - 无法协商 kex 算法的密钥交换