HTTP Client
To connect to a server over HTTP, you need to create a client object and call the
connect method.
The connect method accepts the following parameters:
endpointUrl - The URL of the server.
Servers support two kinds of schemes for HTTP endpoints.
opc.http://host:port/path
opc.https://host:port/path
Some servers may also support HTTP/HTTPS schemes:
http://host:port/path
https://host:port/path
transportProfile - The transport profile to use can be one of the following:
ua.TransportProfileUri.HttpsJson expands to string http://opcfoundation.org/UA-Profile/Transport/https-json
ua.TransportProfileUri.HttpsBinary expands to string http://opcfoundation.org/UA-Profile/Transport/https-uabinary
This parameter is optional. If not provided, the client will try to connect using binary encoding.
HTTP Examples
Binary Encoding
The following example shows how to connect to a server using binary encoding over HTTP.
local err = client:connect("opc.http://localhost:"..mako.port.."/opcua/", ua.TranportProfileUri.HttpsBinary)
if err ~= nil then
error("connection failed: "..err)
end
trace("Connected sucessfully")
You can also omit the second parameter; the client will try to connect using binary encoding.
local err = client:connect("opc.https://localhost:"..mako.sslport.."/opcua/")
if err ~= nil then
error("connection failed: "..err)
end
trace("Connected sucessfully")
To connect to a server over HTTPS, you need to pass URL with opc.https:// scheme.
local err = client:connect("opc.https://localhost:"..mako.sslport.."/opcua/", ua.TranportProfileUri.HttpsBinary)
if err ~= nil then
error("connection failed: "..err)
end
trace("Connected sucessfully")
JSON Encoding
JSON encoding is a non-standard way to communicate between OPC UA clients and servers. Because of this, you can only connect to RealTimeLogic server using JSON encoding.
The following example shows how to connect to a server using JSON encoding over HTTP.
local err = client:connect("opc.https://localhost:"..mako.sslport.."/opcua/", ua.TranportProfileUri.HttpsJson)
if err ~= nil then
error("connection failed: "..err)
end
trace("Connected sucessfully")