NodeOPCUA API Documentation
    Preparing search index...

    Interface IClientTransport

    The minimal surface that ClientSecureChannelLayer (and anything else acting as a secure-channel client) uses from a transport. ClientTCP_transport already satisfies this interface; browser transports (e.g. a WebSocket-based one) must also satisfy it to be pluggable via IClientTransportFactory.

    This interface is intentionally the smallest superset of what the existing ClientTCP_transport exposes and that the secure-channel layer actually consumes, so adding new transports does not require replicating Node-specific machinery.

    interface IClientTransport {
        bytesRead: number;
        bytesWritten: number;
        chunkReadCount: number;
        chunkWrittenCount: number;
        endpointUrl: string;
        maxChunkCount: number;
        maxMessageSize: number;
        name: string;
        numberOfRetry: number;
        parameters?: AcknowledgeMessage;
        protocolVersion: number;
        receiveBufferSize: number;
        sendBufferSize: number;
        serverUri: string;
        timeout: number;
        connect(endpointUrl: string, callback: (err?: Error | null) => void): void;
        disconnect(callback: (err?: Error | null) => void): void;
        dispose(): void;
        forceConnectionBreak(): void;
        getTransportSettings(): TransportSettingsOptions;
        isDisconnecting(): boolean;
        isValid(): boolean;
        on(eventName: "chunk", eventHandler: (messageChunk: Buffer) => void): this;
        on(eventName: "close", eventHandler: (err: Error | null) => void): this;
        on(
            eventName: "connection_break",
            eventHandler: (err: Error | null) => void,
        ): this;
        on(eventName: "connect", eventHandler: () => void): this;
        once(
            eventName: "chunk",
            eventHandler: (messageChunk: Buffer) => void,
        ): this;
        once(eventName: "close", eventHandler: (err: Error | null) => void): this;
        once(
            eventName: "connection_break",
            eventHandler: (err: Error | null) => void,
        ): this;
        once(eventName: "connect", eventHandler: () => void): this;
        prematureTerminate(err: Error, statusCode: StatusCode): void;
        removeListener(
            eventName: "chunk",
            eventHandler: (messageChunk: Buffer) => void,
        ): this;
        removeListener(
            eventName: "close",
            eventHandler: (err: Error | null) => void,
        ): this;
        removeListener(
            eventName: "connection_break",
            eventHandler: (err: Error | null) => void,
        ): this;
        removeListener(eventName: "connect", eventHandler: () => void): this;
        write(chunk: Buffer, callback?: (err?: Error | null) => undefined): void;
    }
    Index

    Properties

    bytesRead: number
    bytesWritten: number
    chunkReadCount: number
    chunkWrittenCount: number
    endpointUrl: string

    endpoint URL the transport was connected to (set by connect)

    maxChunkCount: number
    maxMessageSize: number
    name: string

    diagnostic name, useful in debug logs

    numberOfRetry: number

    number of times the owning channel has retried. Advisory; bumped by callers.

    parameters?: AcknowledgeMessage
    protocolVersion: number

    OPC UA UACP protocol version advertised in HEL

    receiveBufferSize: number
    sendBufferSize: number
    serverUri: string

    URI reported by the local application to the peer

    timeout: number

    overall timeout applied to the underlying socket / connection lifecycle

    Methods

    • connect to endpointUrl and perform the UACP HEL/ACK handshake

      Parameters

      • endpointUrl: string
      • callback: (err?: Error | null) => void

      Returns void

    • gracefully disconnect; invokes callback when the underlying connection is closed

      Parameters

      • callback: (err?: Error | null) => void

      Returns void

    • forcibly release resources (close the connection if still open)

      Returns void

    • simulate a connection break (used by reconnection logic in tests)

      Returns void

    • true when disconnect() has started or the connection is gone

      Returns boolean

    • true when the underlying connection is open and usable

      Returns boolean

    • Parameters

      • eventName: "chunk"
      • eventHandler: (messageChunk: Buffer) => void

      Returns this

    • Parameters

      • eventName: "close"
      • eventHandler: (err: Error | null) => void

      Returns this

    • Parameters

      • eventName: "connection_break"
      • eventHandler: (err: Error | null) => void

      Returns this

    • Parameters

      • eventName: "connect"
      • eventHandler: () => void

      Returns this

    • Parameters

      • eventName: "chunk"
      • eventHandler: (messageChunk: Buffer) => void

      Returns this

    • Parameters

      • eventName: "close"
      • eventHandler: (err: Error | null) => void

      Returns this

    • Parameters

      • eventName: "connection_break"
      • eventHandler: (err: Error | null) => void

      Returns this

    • Parameters

      • eventName: "connect"
      • eventHandler: () => void

      Returns this

    • emit an ERR back to the peer and destroy the underlying connection

      Parameters

      Returns void

    • Parameters

      • eventName: "chunk"
      • eventHandler: (messageChunk: Buffer) => void

      Returns this

    • Parameters

      • eventName: "close"
      • eventHandler: (err: Error | null) => void

      Returns this

    • Parameters

      • eventName: "connection_break"
      • eventHandler: (err: Error | null) => void

      Returns this

    • Parameters

      • eventName: "connect"
      • eventHandler: () => void

      Returns this

    • write a single UACP chunk to the transport

      Parameters

      • chunk: Buffer
      • Optionalcallback: (err?: Error | null) => undefined

      Returns void