Table of Contents

Class EdgeTunnelProxy

Namespace
OpenShell.Edge
Assembly
OpenShell.Sdk.dll

A local TCP proxy that tunnels each connection over an edge-authenticated WebSocket. Use it when the gateway sits behind an edge (such as Cloudflare Access) that authenticates GET upgrades but not gRPC POSTs: point an http:// client at LocalUri.

public sealed class EdgeTunnelProxy : IAsyncDisposable, IDisposable
Inheritance
EdgeTunnelProxy
Implements
Inherited Members

Properties

LocalEndPoint

The local loopback endpoint the proxy listens on.

public IPEndPoint LocalEndPoint { get; }

Property Value

IPEndPoint

LocalUri

The http://127.0.0.1:port address to give to Address.

public Uri LocalUri { get; }

Property Value

Uri

Methods

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public void Dispose()

DisposeAsync()

Stops accepting, lets open connections finish for CloseTimeout, then cuts them.

public ValueTask DisposeAsync()

Returns

ValueTask

Start(string, string, EdgeTunnelOptions?)

Starts a proxy. https:// and http:// gateway endpoints map to wss:///ws:// with the /_ws_tunnel path the gateway serves; a ws:// or wss:// URL is used exactly as given. ws:// is accepted only for loopback hosts because the token would otherwise cross the network in clear text.

public static EdgeTunnelProxy Start(string gatewayEndpoint, string edgeToken, EdgeTunnelOptions? options = null)

Parameters

gatewayEndpoint string
edgeToken string
options EdgeTunnelOptions

Returns

EdgeTunnelProxy