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.TranportProfileUri.HttpsJson expands to string http://opcfoundation.org/UA-Profile/Transport/https-json
ua.TranportProfileUri.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 OPCUA 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")