FreeOpcUa / opcua-asyncio

OPC UA library for python >= 3.7
GNU Lesser General Public License v3.0
1.11k stars 358 forks source link

how to discover local server from remote client? #1538

Open xibeisiber opened 9 months ago

xibeisiber commented 9 months ago

Hi,

Since OPCUA servers are deploy on local devices, how can an OPCUA client from cloud/internet discover the servers? Is there any example or demo on this?

Thanks!

schroeder- commented 9 months ago

There is OPC UA GDS, i think it is not working with the asyncua library out of the box. We should have all the building blocks, but you have put them together, from the spec.

xibeisiber commented 9 months ago

Thanks for your reply. I will look into the GDS

xibeisiber commented 9 months ago

hi, I understand the GDS is helping remote client to find the endpoints of local servers. These endpoints includes local ip address. But if the device hosting the local servers does not have a public domain, how can remote client really access these servers? Does the local device need something like "intranet penetration".

And is there an open source GDS avaiable?

schroeder- commented 9 months ago

you need to expose it to the internet, like a webserver.

As alternative there is reverse connection. Now your server tries to connect to a client. The downside is, that the server must know the client address. Also this is currently not supported by asyncua.

A open source implementation is this https://github.com/OPCFoundation/UA-.NETStandard-Samples/blob/master/Samples/GDS/README.md