You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
php-opcua/opcua-client-ext-transport-https is a wire transport for
php-opcua/opcua-client that
talks opc.https:// instead of opc.tcp://. It implements the HTTPS
mappings from OPC UA Part 6 §7.4 — TLS is the secure channel, each UA
service request is a single HTTP POST, and the response body is the
service response.
When to use it
Reach for HTTPS when the network forbids inbound opc.tcp but allows
outbound https: cloud-to-edge gateways, corporate proxies, restricted
firewall zones. HTTPS keeps the OPC UA protocol logic intact; only the
wire layer changes.
Roadmap (community request, opt-in (separate transport, not a strategy)
How it relates to opcua-client
opcua-client v4.4.0 added two small seams on ClientTransportInterface
to make non-TCP transports first-class:
createProbe(): self — the discovery probe uses the same transport
family as the main connection, not a hardcoded TcpTransport.
isSecureChannelExternal(): bool — when true, the client skips the
OPC UA OpenSecureChannel exchange. TLS already wraps the channel.
HttpsTransport returns true for the second and constructs a fresh
sibling for the first.
Architecture
OpcUaClient → ClientTransportInterface
│
▼
HttpsTransport
│
┌───────────┼───────────┐
▼ ▼
HttpsEncodingStrategy HttpClientInterface
│ │
BinaryHttpsEncoding CurlHttpClient (ext-curl)
(§7.4.4)
│
│ encode: strip 24-byte UA-TCP prefix → bare service body
│ decode: rewrap bare response in synthetic UA-TCP frame
│ fakeAcknowledge: produce ACK locally (HEL/ACK is not on the wire)