# Functions
DialWS creates a new client connection.
IsExpectedWSCloseError returns boolean indicating whether the error is a clean disconnection.
MakePluginSpecs makes a new PluginSpecs with the given plugin specs.
NewJSONWebsocketCodec makes a new JSONWebsocketCodec.
NewPipe makes a new pipe.
NewPipeFromEnds makes a new pipe specifying its ends.
Ping adds a periodic ping to a websocket connection.
ResizeTTYControlWrapper extracts the arguments needed by the resize tty control handler.
ResponseError creates a new Response with the given error.
ResponseErrorf creates a new Response with the given formatted error string.
Upgrade upgrades the HTTP server connection to the WebSocket protocol.
# Constants
AppPort is the default port that the app will use for its HTTP server.
HistoricReportsCapability indicates whether reports older than the current time (-app.window) can be retrieved.
ScopeProbeIDHeader is the header we use to carry the probe's unique ID.
ScopeProbeVersionHeader is the header we use to carry the probe's version.
# Variables
EmptyPluginSpecs is the empty set of plugin specs.
ErrInvalidMessage is the error returned when the on-wire message is unexpected.
# Structs
Details are some generic details that can be fetched from /api.
JSONWebsocketCodec is golang rpc compatible Server and Client Codec that transmits and receives RPC messages over a websocker, as JSON.
Message is the unions of Request, Response and arbitrary Value.
NewVersionInfo is the struct exposed in /api when there is a new version of Scope available.
PluginSpec is shared between the Probe, App, and UI.
PluginSpecs is a set of plugin specs keyed on ID.
Request is the UI -> App -> Probe message type for control RPCs.
Response is the Probe -> App -> UI message type for the control RPCs.
# Interfaces
ControlHandler is interface used in the app and the probe to represent a control RPC.
Pipe is a bi-directional channel from something in the probe to the UI.
Websocket exposes the bits of *websocket.Conn we actually use.
WSDialer can dial a new websocket.
# Type aliases
ControlHandlerFunc is a adapter (ala golang's http RequestHandlerFunc) for ControlHandler.
PluginSpecsByID implements sort.Interface, so we can sort the specs by the ID field.