Files
skills/docs/networking/network/network-transport-standby/README.md
2026-05-29 08:20:56 +01:00

8.3 KiB

@suaveplan/network-transport-standby - Pre-emptive WebRTC standby transport: warm-slot connection pool with health scoring and auto-reconnect for sub-100ms peer attach

Summary

Pre-emptive WebRTC standby transport for @suaveplan/network. Maintains a pool of warm RTCPeerConnection-like slots so peer attach completes in ~10 ms instead of the typical 1-3 s ICE/DTLS handshake.

Documentation tree

- [errors](./src/errors/errors.md) — _(no submodules)_- [health](./src/health/monitor.md) — _(no submodules)_- [monitor](./src/health/monitor.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [pool](./src/pool/pool.md) — _(no submodules)_- [pool](./src/pool/pool.md) — _(no submodules)_- [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_- [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [errors](./src/errors/errors.md) — _(no submodules)_- [health](./src/health/monitor.md) — _(no submodules)_- [monitor](./src/health/monitor.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [pool](./src/pool/pool.md) — _(no submodules)_- [pool](./src/pool/pool.md) — _(no submodules)_- [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_- [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [errors](./src/errors/errors.md) — _(no submodules)_- [health](./src/health/monitor.md) — _(no submodules)_- [monitor](./src/health/monitor.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [pool](./src/pool/pool.md) — _(no submodules)_- [pool](./src/pool/pool.md) — _(no submodules)_- [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_- [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [errors](./src/errors/errors.md) — _(no submodules)_- [health](./src/health/monitor.md) — _(no submodules)_ - [monitor](./src/health/monitor.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_ - [otel](./src/otel/otel.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_ - [plugin](./src/plugin/plugin.md) — _(no submodules)_- [pool](./src/pool/pool.md) — _(no submodules)_ - [pool](./src/pool/pool.md) — _(no submodules)_- [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_ - [reconnect](./src/reconnect/reconnect.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_ - [transport](./src/transport/transport.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_ - [types](./src/types/types.md) — _(no submodules)_

Module map

At a glance

import { NetworkNode } from "@suaveplan/network";
import { StandbyPlugin } from "@suaveplan/network-transport-standby";

const node = new NetworkNode();
node.use(
    new StandbyPlugin({
        pool: {
            config: {
                minSlots: 4,
                maxSlots: 8,
                warmupTimeoutMs: 5_000,
                healthCheckIntervalMs: 30_000,
                qualityThreshold: 50,
                maxReconnectAttempts: 3,
                reconnectBaseDelayMs: 1_000,
                reconnectMaxDelayMs: 30_000,
            },
            rtcFactory: async (slotId) => makeRtcConnection(slotId),
        },
    })
);
await node.start();