2024-11-24 14:57:24 -08:00
|
|
|
# QUIC
|
|
|
|
|
2025-02-11 09:55:52 -05:00
|
|
|
<!-- introduced_in=v23.8.0-->
|
2024-11-24 14:57:24 -08:00
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
> Stability: 1.0 - Early development
|
|
|
|
|
|
|
|
<!-- source_link=lib/quic.js -->
|
|
|
|
|
|
|
|
The 'node:quic' module provides an implementation of the QUIC protocol.
|
|
|
|
To access it, start Node.js with the `--experimental-quic` option and:
|
|
|
|
|
|
|
|
```mjs
|
|
|
|
import quic from 'node:quic';
|
|
|
|
```
|
|
|
|
|
|
|
|
```cjs
|
|
|
|
const quic = require('node:quic');
|
|
|
|
```
|
|
|
|
|
|
|
|
The module is only available under the `node:` scheme.
|
|
|
|
|
|
|
|
## `quic.connect(address[, options])`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `address` {string|net.SocketAddress}
|
|
|
|
* `options` {quic.SessionOptions}
|
|
|
|
* Returns: {Promise} a promise for a {quic.QuicSession}
|
|
|
|
|
|
|
|
Initiate a new client-side session.
|
|
|
|
|
|
|
|
```mjs
|
|
|
|
import { connect } from 'node:quic';
|
|
|
|
import { Buffer } from 'node:buffer';
|
|
|
|
|
|
|
|
const enc = new TextEncoder();
|
|
|
|
const alpn = 'foo';
|
|
|
|
const client = await connect('123.123.123.123:8888', { alpn });
|
|
|
|
await client.createUnidirectionalStream({
|
|
|
|
body: enc.encode('hello world'),
|
|
|
|
});
|
|
|
|
```
|
|
|
|
|
|
|
|
By default, every call to `connect(...)` will create a new local
|
|
|
|
`QuicEndpoint` instance bound to a new random local IP port. To
|
|
|
|
specify the exact local address to use, or to multiplex multiple
|
|
|
|
QUIC sessions over a single local port, pass the `endpoint` option
|
|
|
|
with either a `QuicEndpoint` or `EndpointOptions` as the argument.
|
|
|
|
|
|
|
|
```mjs
|
|
|
|
import { QuicEndpoint, connect } from 'node:quic';
|
|
|
|
|
|
|
|
const endpoint = new QuicEndpoint({
|
|
|
|
address: '127.0.0.1:1234',
|
|
|
|
});
|
|
|
|
|
|
|
|
const client = await connect('123.123.123.123:8888', { endpoint });
|
|
|
|
```
|
|
|
|
|
|
|
|
## `quic.listen(onsession,[options])`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `onsession` {quic.OnSessionCallback}
|
|
|
|
* `options` {quic.SessionOptions}
|
|
|
|
* Returns: {Promise} a promise for a {quic.QuicEndpoint}
|
|
|
|
|
|
|
|
Configures the endpoint to listen as a server. When a new session is initiated by
|
|
|
|
a remote peer, the given `onsession` callback will be invoked with the created
|
|
|
|
session.
|
|
|
|
|
|
|
|
```mjs
|
|
|
|
import { listen } from 'node:quic';
|
|
|
|
|
|
|
|
const endpoint = await listen((session) => {
|
|
|
|
// ... handle the session
|
|
|
|
});
|
|
|
|
|
|
|
|
// Closing the endpoint allows any sessions open when close is called
|
|
|
|
// to complete naturally while preventing new sessions from being
|
|
|
|
// initiated. Once all existing sessions have finished, the endpoint
|
|
|
|
// will be destroyed. The call returns a promise that is resolved once
|
|
|
|
// the endpoint is destroyed.
|
|
|
|
await endpoint.close();
|
|
|
|
```
|
|
|
|
|
|
|
|
By default, every call to `listen(...)` will create a new local
|
|
|
|
`QuicEndpoint` instance bound to a new random local IP port. To
|
|
|
|
specify the exact local address to use, or to multiplex multiple
|
|
|
|
QUIC sessions over a single local port, pass the `endpoint` option
|
|
|
|
with either a `QuicEndpoint` or `EndpointOptions` as the argument.
|
|
|
|
|
|
|
|
At most, any single `QuicEndpoint` can only be configured to listen as
|
|
|
|
a server once.
|
|
|
|
|
|
|
|
## Class: `QuicEndpoint`
|
|
|
|
|
|
|
|
A `QuicEndpoint` encapsulates the local UDP-port binding for QUIC. It can be
|
|
|
|
used as both a client and a server.
|
|
|
|
|
|
|
|
### `new QuicEndpoint([options])`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `options` {quic.EndpointOptions}
|
|
|
|
|
|
|
|
### `endpoint.address`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {net.SocketAddress|undefined}
|
|
|
|
|
|
|
|
The local UDP socket address to which the endpoint is bound, if any.
|
|
|
|
|
|
|
|
If the endpoint is not currently bound then the value will be `undefined`. Read only.
|
|
|
|
|
|
|
|
### `endpoint.busy`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {boolean}
|
|
|
|
|
|
|
|
When `endpoint.busy` is set to true, the endpoint will temporarily reject
|
|
|
|
new sessions from being created. Read/write.
|
|
|
|
|
|
|
|
```mjs
|
|
|
|
// Mark the endpoint busy. New sessions will be prevented.
|
|
|
|
endpoint.busy = true;
|
|
|
|
|
|
|
|
// Mark the endpoint free. New session will be allowed.
|
|
|
|
endpoint.busy = false;
|
|
|
|
```
|
|
|
|
|
|
|
|
The `busy` property is useful when the endpoint is under heavy load and needs to
|
|
|
|
temporarily reject new sessions while it catches up.
|
|
|
|
|
|
|
|
### `endpoint.close()`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Returns: {Promise}
|
|
|
|
|
|
|
|
Gracefully close the endpoint. The endpoint will close and destroy itself when
|
|
|
|
all currently open sessions close. Once called, new sessions will be rejected.
|
|
|
|
|
|
|
|
Returns a promise that is fulfilled when the endpoint is destroyed.
|
|
|
|
|
|
|
|
### `endpoint.closed`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {Promise}
|
|
|
|
|
|
|
|
A promise that is fulfilled when the endpoint is destroyed. This will be the same promise that is
|
|
|
|
returned by the `endpoint.close()` function. Read only.
|
|
|
|
|
|
|
|
### `endpoint.closing`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {boolean}
|
|
|
|
|
|
|
|
True if `endpoint.close()` has been called and closing the endpoint has not yet completed.
|
|
|
|
Read only.
|
|
|
|
|
|
|
|
### `endpoint.destroy([error])`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `error` {any}
|
|
|
|
|
|
|
|
Forcefully closes the endpoint by forcing all open sessions to be immediately
|
|
|
|
closed.
|
|
|
|
|
|
|
|
### `endpoint.destroyed`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {boolean}
|
|
|
|
|
|
|
|
True if `endpoint.destroy()` has been called. Read only.
|
|
|
|
|
|
|
|
### `endpoint.stats`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {quic.QuicEndpoint.Stats}
|
|
|
|
|
|
|
|
The statistics collected for an active session. Read only.
|
|
|
|
|
|
|
|
### `endpoint[Symbol.asyncDispose]()`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
Calls `endpoint.close()` and returns a promise that fulfills when the
|
|
|
|
endpoint has closed.
|
|
|
|
|
|
|
|
## Class: `QuicEndpoint.Stats`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
A view of the collected statistics for an endpoint.
|
|
|
|
|
|
|
|
### `endpointStats.createdAt`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint} A timestamp indicating the moment the endpoint was created. Read only.
|
|
|
|
|
|
|
|
### `endpointStats.destroyedAt`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint} A timestamp indicating the moment the endpoint was destroyed. Read only.
|
|
|
|
|
|
|
|
### `endpointStats.bytesReceived`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint} The total number of bytes received by this endpoint. Read only.
|
|
|
|
|
|
|
|
### `endpointStats.bytesSent`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint} The total number of bytes sent by this endpoint. Read only.
|
|
|
|
|
|
|
|
### `endpointStats.packetsReceived`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint} The total number of QUIC packets successfully received by this endpoint. Read only.
|
|
|
|
|
|
|
|
### `endpointStats.packetsSent`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint} The total number of QUIC packets successfully sent by this endpoint. Read only.
|
|
|
|
|
|
|
|
### `endpointStats.serverSessions`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint} The total number of peer-initiated sessions received by this endpoint. Read only.
|
|
|
|
|
|
|
|
### `endpointStats.clientSessions`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint} The total number of sessions initiated by this endpoint. Read only.
|
|
|
|
|
|
|
|
### `endpointStats.serverBusyCount`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint} The total number of times an initial packet was rejected due to the
|
|
|
|
endpoint being marked busy. Read only.
|
|
|
|
|
|
|
|
### `endpointStats.retryCount`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint} The total number of QUIC retry attempts on this endpoint. Read only.
|
|
|
|
|
|
|
|
### `endpointStats.versionNegotiationCount`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint} The total number sessions rejected due to QUIC version mismatch. Read only.
|
|
|
|
|
|
|
|
### `endpointStats.statelessResetCount`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint} The total number of stateless resets handled by this endpoint. Read only.
|
|
|
|
|
|
|
|
### `endpointStats.immediateCloseCount`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint} The total number of sessions that were closed before handshake completed. Read only.
|
|
|
|
|
|
|
|
## Class: `QuicSession`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
A `QuicSession` represents the local side of a QUIC connection.
|
|
|
|
|
|
|
|
### `session.close()`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Returns: {Promise}
|
|
|
|
|
|
|
|
Initiate a graceful close of the session. Existing streams will be allowed
|
|
|
|
to complete but no new streams will be opened. Once all streams have closed,
|
|
|
|
the session will be destroyed. The returned promise will be fulfilled once
|
|
|
|
the session has been destroyed.
|
|
|
|
|
|
|
|
### `session.closed`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {Promise}
|
|
|
|
|
|
|
|
A promise that is fulfilled once the session is destroyed.
|
|
|
|
|
|
|
|
### `session.destroy([error])`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `error` {any}
|
|
|
|
|
|
|
|
Immediately destroy the session. All streams will be destroys and the
|
|
|
|
session will be closed.
|
|
|
|
|
|
|
|
### `session.destroyed`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {boolean}
|
|
|
|
|
|
|
|
True if `session.destroy()` has been called. Read only.
|
|
|
|
|
|
|
|
### `session.endpoint`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {quic.QuicEndpoint}
|
|
|
|
|
|
|
|
The endpoint that created this session. Read only.
|
|
|
|
|
|
|
|
### `session.onstream`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {quic.OnStreamCallback}
|
|
|
|
|
|
|
|
The callback to invoke when a new stream is initiated by a remote peer. Read/write.
|
|
|
|
|
|
|
|
### `session.ondatagram`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {quic.OnDatagramCallback}
|
|
|
|
|
|
|
|
The callback to invoke when a new datagram is received from a remote peer. Read/write.
|
|
|
|
|
|
|
|
### `session.ondatagramstatus`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {quic.OnDatagramStatusCallback}
|
|
|
|
|
|
|
|
The callback to invoke when the status of a datagram is updated. Read/write.
|
|
|
|
|
|
|
|
### `session.onpathvalidation`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {quic.OnPathValidationCallback}
|
|
|
|
|
|
|
|
The callback to invoke when the path validation is updated. Read/write.
|
|
|
|
|
|
|
|
### `seesion.onsessionticket`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {quic.OnSessionTicketCallback}
|
|
|
|
|
|
|
|
The callback to invoke when a new session ticket is received. Read/write.
|
|
|
|
|
|
|
|
### `session.onversionnegotiation`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {quic.OnVersionNegotiationCallback}
|
|
|
|
|
|
|
|
The callback to invoke when a version negotiation is initiated. Read/write.
|
|
|
|
|
|
|
|
### `session.onhandshake`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {quic.OnHandshakeCallback}
|
|
|
|
|
|
|
|
The callback to invoke when the TLS handshake is completed. Read/write.
|
|
|
|
|
|
|
|
### `session.createBidirectionalStream([options])`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `options` {Object}
|
|
|
|
* `body` {ArrayBuffer | ArrayBufferView | Blob}
|
|
|
|
* `sendOrder` {number}
|
|
|
|
* Returns: {Promise} for a {quic.QuicStream}
|
|
|
|
|
|
|
|
Open a new bidirectional stream. If the `body` option is not specified,
|
|
|
|
the outgoing stream will be half-closed.
|
|
|
|
|
|
|
|
### `session.createUnidirectionalStream([options])`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `options` {Object}
|
|
|
|
* `body` {ArrayBuffer | ArrayBufferView | Blob}
|
|
|
|
* `sendOrder` {number}
|
|
|
|
* Returns: {Promise} for a {quic.QuicStream}
|
|
|
|
|
|
|
|
Open a new unidirectional stream. If the `body` option is not specified,
|
|
|
|
the outgoing stream will be closed.
|
|
|
|
|
|
|
|
### `session.path`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {Object|undefined}
|
|
|
|
* `local` {net.SocketAddress}
|
|
|
|
* `remote` {net.SocketAddress}
|
|
|
|
|
|
|
|
The local and remote socket addresses associated with the session. Read only.
|
|
|
|
|
|
|
|
### `session.sendDatagram(datagram)`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `datagram` {string|ArrayBufferView}
|
|
|
|
* Returns: {bigint}
|
|
|
|
|
|
|
|
Sends an unreliable datagram to the remote peer, returning the datagram ID.
|
|
|
|
If the datagram payload is specified as an `ArrayBufferView`, then ownership of
|
|
|
|
that view will be transfered to the underlying stream.
|
|
|
|
|
|
|
|
### `session.stats`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {quic.QuicSession.Stats}
|
|
|
|
|
|
|
|
Return the current statistics for the session. Read only.
|
|
|
|
|
|
|
|
### `session.updateKey()`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
Initiate a key update for the session.
|
|
|
|
|
|
|
|
### `session[Symbol.asyncDispose]()`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
Calls `session.close()` and returns a promise that fulfills when the
|
|
|
|
session has closed.
|
|
|
|
|
|
|
|
## Class: `QuicSession.Stats`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### `sessionStats.createdAt`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.closingAt`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.handshakeCompletedAt`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.handshakeConfirmedAt`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.bytesReceived`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.bytesSent`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.bidiInStreamCount`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.bidiOutStreamCount`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.uniInStreamCount`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.uniOutStreamCount`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.maxBytesInFlights`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.bytesInFlight`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.blockCount`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.cwnd`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.latestRtt`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.minRtt`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.rttVar`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.smoothedRtt`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.ssthresh`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.datagramsReceived`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.datagramsSent`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.datagramsAcknowledged`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `sessionStats.datagramsLost`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
## Class: `QuicStream`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### `stream.closed`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {Promise}
|
|
|
|
|
|
|
|
A promise that is fulfilled when the stream is fully closed.
|
|
|
|
|
|
|
|
### `stream.destroy([error])`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `error` {any}
|
|
|
|
|
|
|
|
Immediately and abruptly destroys the stream.
|
|
|
|
|
|
|
|
### `stream.destroyed`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {boolean}
|
|
|
|
|
|
|
|
True if `stream.destroy()` has been called.
|
|
|
|
|
|
|
|
### `stream.direction`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {string} One of either `'bidi'` or `'uni'`.
|
|
|
|
|
|
|
|
The directionality of the stream. Read only.
|
|
|
|
|
|
|
|
### `stream.id`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
The stream ID. Read only.
|
|
|
|
|
|
|
|
### `stream.onblocked`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {quic.OnBlockedCallback}
|
|
|
|
|
|
|
|
The callback to invoke when the stream is blocked. Read/write.
|
|
|
|
|
|
|
|
### `stream.onreset`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {quic.OnStreamErrorCallback}
|
|
|
|
|
|
|
|
The callback to invoke when the stream is reset. Read/write.
|
|
|
|
|
|
|
|
### `stream.readable`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {ReadableStream}
|
|
|
|
|
|
|
|
### `stream.session`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {quic.QuicSession}
|
|
|
|
|
|
|
|
The session that created this stream. Read only.
|
|
|
|
|
|
|
|
### `stream.stats`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {quic.QuicStream.Stats}
|
|
|
|
|
|
|
|
The current statistics for the stream. Read only.
|
|
|
|
|
|
|
|
## Class: `QuicStream.Stats`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### `streamStats.ackedAt`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `streamStats.bytesReceived`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `streamStats.bytesSent`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `streamStats.createdAt`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `streamStats.destroyedAt`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `streamStats.finalSize`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `streamStats.isConnected`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `streamStats.maxOffset`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `streamStats.maxOffsetAcknowledged`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `streamStats.maxOffsetReceived`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `streamStats.openedAt`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
### `streamStats.receivedAt`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint}
|
|
|
|
|
|
|
|
## Types
|
|
|
|
|
|
|
|
### Type: `EndpointOptions`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {Object}
|
|
|
|
|
|
|
|
The endpoint configuration options passed when constructing a new `QuicEndpoint` instance.
|
|
|
|
|
|
|
|
#### `endpointOptions.address`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {net.SocketAddress | string} The local UDP address and port the endpoint should bind to.
|
|
|
|
|
|
|
|
If not specified the endpoint will bind to IPv4 `localhost` on a random port.
|
|
|
|
|
|
|
|
#### `endpointOptions.addressLRUSize`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
The endpoint maintains an internal cache of validated socket addresses as a
|
|
|
|
performance optimization. This option sets the maximum number of addresses
|
|
|
|
that are cache. This is an advanced option that users typically won't have
|
|
|
|
need to specify.
|
|
|
|
|
|
|
|
#### `endpointOptions.ipv6Only`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {boolean}
|
|
|
|
|
|
|
|
When `true`, indicates that the endpoint should bind only to IPv6 addresses.
|
|
|
|
|
|
|
|
#### `endpointOptions.maxConnectionsPerHost`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
Specifies the maximum number of concurrent sessions allowed per remote peer address.
|
|
|
|
|
|
|
|
#### `endpointOptions.maxConnectionsTotal`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
Specifies the maximum total number of concurrent sessions.
|
|
|
|
|
|
|
|
#### `endpointOptions.maxRetries`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
Specifies the maximum number of QUIC retry attempts allowed per remote peer address.
|
|
|
|
|
|
|
|
#### `endpointOptions.maxStatelessResetsPerHost`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
Specifies the maximum number of stateless resets that are allowed per remote peer address.
|
|
|
|
|
|
|
|
#### `endpointOptions.retryTokenExpiration`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
Specifies the length of time a QUIC retry token is considered valid.
|
|
|
|
|
|
|
|
#### `endpointOptions.resetTokenSecret`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {ArrayBufferView}
|
|
|
|
|
|
|
|
Specifies the 16-byte secret used to generate QUIC retry tokens.
|
|
|
|
|
|
|
|
#### `endpointOptions.tokenExpiration`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
Specifies the length of time a QUIC token is considered valid.
|
|
|
|
|
|
|
|
#### `endpointOptions.tokenSecret`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {ArrayBufferView}
|
|
|
|
|
|
|
|
Specifies the 16-byte secret used to generate QUIC tokens.
|
|
|
|
|
|
|
|
#### `endpointOptions.udpReceiveBufferSize`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {number}
|
|
|
|
|
|
|
|
#### `endpointOptions.udpSendBufferSize`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {number}
|
|
|
|
|
|
|
|
#### `endpointOptions.udpTTL`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {number}
|
|
|
|
|
|
|
|
#### `endpointOptions.validateAddress`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {boolean}
|
|
|
|
|
|
|
|
When `true`, requires that the endpoint validate peer addresses using retry packets
|
|
|
|
while establishing a new connection.
|
|
|
|
|
|
|
|
### Type: `SessionOptions`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
#### `sessionOptions.alpn`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {string}
|
|
|
|
|
|
|
|
The ALPN protocol identifier.
|
|
|
|
|
|
|
|
#### `sessionOptions.ca`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {ArrayBuffer|ArrayBufferView|ArrayBuffer\[]|ArrayBufferView\[]}
|
|
|
|
|
|
|
|
The CA certificates to use for sessions.
|
|
|
|
|
|
|
|
#### `sessionOptions.cc`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {string}
|
|
|
|
|
|
|
|
Specifies the congestion control algorithm that will be used
|
|
|
|
. Must be set to one of either `'reno'`, `'cubic'`, or `'bbr'`.
|
|
|
|
|
|
|
|
This is an advanced option that users typically won't have need to specify.
|
|
|
|
|
|
|
|
#### `sessionOptions.certs`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {ArrayBuffer|ArrayBufferView|ArrayBuffer\[]|ArrayBufferView\[]}
|
|
|
|
|
|
|
|
The TLS certificates to use for sessions.
|
|
|
|
|
|
|
|
#### `sessionOptions.ciphers`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {string}
|
|
|
|
|
|
|
|
The list of supported TLS 1.3 cipher algorithms.
|
|
|
|
|
|
|
|
#### `sessionOptions.crl`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {ArrayBuffer|ArrayBufferView|ArrayBuffer\[]|ArrayBufferView\[]}
|
|
|
|
|
|
|
|
The CRL to use for sessions.
|
|
|
|
|
|
|
|
#### `sessionOptions.groups`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {string}
|
|
|
|
|
|
|
|
The list of support TLS 1.3 cipher groups.
|
|
|
|
|
|
|
|
#### `sessionOptions.keylog`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {boolean}
|
|
|
|
|
|
|
|
True to enable TLS keylogging output.
|
|
|
|
|
|
|
|
#### `sessionOptions.keys`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {KeyObject|CryptoKey|KeyObject\[]|CryptoKey\[]}
|
|
|
|
|
|
|
|
The TLS crypto keys to use for sessions.
|
|
|
|
|
|
|
|
#### `sessionOptions.maxPayloadSize`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
Specifies the maximum UDP packet payload size.
|
|
|
|
|
|
|
|
#### `sessionOptions.maxStreamWindow`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
Specifies the maximum stream flow-control window size.
|
|
|
|
|
|
|
|
#### `sessionOptions.maxWindow`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
Specifies the maxumum session flow-control window size.
|
|
|
|
|
|
|
|
#### `sessionOptions.minVersion`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {number}
|
|
|
|
|
|
|
|
The minimum QUIC version number to allow. This is an advanced option that users
|
|
|
|
typically won't have need to specify.
|
|
|
|
|
|
|
|
#### `sessionOptions.preferredAddressPolicy`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {string} One of `'use'`, `'ignore'`, or `'default'`.
|
|
|
|
|
|
|
|
When the remote peer advertises a preferred address, this option specifies whether
|
|
|
|
to use it or ignore it.
|
|
|
|
|
|
|
|
#### `sessionOptions.qlog`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {boolean}
|
|
|
|
|
|
|
|
True if qlog output should be enabled.
|
|
|
|
|
|
|
|
#### `sessionOptions.sessionTicket`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {ArrayBufferView} A session ticket to use for 0RTT session resumption.
|
|
|
|
|
|
|
|
#### `sessionOptions.handshakeTimeout`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
Specifies the maximum number of milliseconds a TLS handshake is permitted to take
|
|
|
|
to complete before timing out.
|
|
|
|
|
|
|
|
#### `sessionOptions.sni`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {string}
|
|
|
|
|
|
|
|
The peer server name to target.
|
|
|
|
|
|
|
|
#### `sessionOptions.tlsTrace`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {boolean}
|
|
|
|
|
|
|
|
True to enable TLS tracing output.
|
|
|
|
|
|
|
|
#### `sessionOptions.transportParams`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {quic.TransportParams}
|
|
|
|
|
|
|
|
The QUIC transport parameters to use for the session.
|
|
|
|
|
|
|
|
#### `sessionOptions.unacknowledgedPacketThreshold`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
Specifies the maximum number of unacknowledged packets a session should allow.
|
|
|
|
|
|
|
|
#### `sessionOptions.verifyClient`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {boolean}
|
|
|
|
|
|
|
|
True to require verification of TLS client certificate.
|
|
|
|
|
|
|
|
#### `sessionOptions.verifyPrivateKey`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {boolean}
|
|
|
|
|
|
|
|
True to require private key verification.
|
|
|
|
|
|
|
|
#### `sessionOptions.version`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {number}
|
|
|
|
|
|
|
|
The QUIC version number to use. This is an advanced option that users typically
|
|
|
|
won't have need to specify.
|
|
|
|
|
|
|
|
### Type: `TransportParams`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
#### `transportParams.preferredAddressIpv4`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {net.SocketAddress} The preferred IPv4 address to advertise.
|
|
|
|
|
|
|
|
#### `transportParams.preferredAddressIpv6`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {net.SocketAddress} The preferred IPv6 address to advertise.
|
|
|
|
|
|
|
|
#### `transportParams.initialMaxStreamDataBidiLocal`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
#### `transportParams.initialMaxStreamDataBidiRemote`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
#### `transportParams.initialMaxStreamDataUni`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
#### `transportParams.initialMaxData`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
#### `transportParams.initialMaxStreamsBidi`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
#### `transportParams.initialMaxStreamsUni`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
#### `transportParams.maxIdleTimeout`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
#### `transportParams.activeConnectionIDLimit`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
#### `transportParams.ackDelayExponent`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
#### `transportParams.maxAckDelay`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
#### `transportParams.maxDatagramFrameSize`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* {bigint|number}
|
|
|
|
|
|
|
|
## Callbacks
|
|
|
|
|
|
|
|
### Callback: `OnSessionCallback`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `this` {quic.QuicEndpoint}
|
|
|
|
* `session` {quic.QuicSession}
|
|
|
|
|
|
|
|
The callback function that is invoked when a new session is initiated by a remote peer.
|
|
|
|
|
|
|
|
### Callback: `OnStreamCallback`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `this` {quic.QuicSession}
|
|
|
|
* `stream` {quic.QuicStream}
|
|
|
|
|
|
|
|
### Callback: `OnDatagramCallback`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `this` {quic.QuicSession}
|
|
|
|
* `datagram` {Uint8Array}
|
|
|
|
* `early` {boolean}
|
|
|
|
|
|
|
|
### Callback: `OnDatagramStatusCallback`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `this` {quic.QuicSession}
|
|
|
|
* `id` {bigint}
|
|
|
|
* `status` {string} One of either `'lost'` or `'acknowledged'`.
|
|
|
|
|
|
|
|
### Callback: `OnPathValidationCallback`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `this` {quic.QuicSession}
|
|
|
|
* `result` {string} One of either `'success'`, `'failure'`, or `'aborted'`.
|
|
|
|
* `newLocalAddress` {net.SocketAddress}
|
|
|
|
* `newRemoteAddress` {net.SocketAddress}
|
|
|
|
* `oldLocalAddress` {net.SocketAddress}
|
|
|
|
* `oldRemoteAddress` {net.SocketAddress}
|
|
|
|
* `preferredAddress` {boolean}
|
|
|
|
|
|
|
|
### Callback: `OnSessionTicketCallback`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `this` {quic.QuicSession}
|
|
|
|
* `ticket` {Object}
|
|
|
|
|
|
|
|
### Callback: `OnVersionNegotiationCallback`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `this` {quic.QuicSession}
|
|
|
|
* `version` {number}
|
|
|
|
* `requestedVersions` {number\[]}
|
|
|
|
* `supportedVersions` {number\[]}
|
|
|
|
|
|
|
|
### Callback: `OnHandshakeCallback`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `this` {quic.QuicSession}
|
|
|
|
* `sni` {string}
|
|
|
|
* `alpn` {string}
|
|
|
|
* `cipher` {string}
|
|
|
|
* `cipherVersion` {string}
|
|
|
|
* `validationErrorReason` {string}
|
|
|
|
* `validationErrorCode` {number}
|
|
|
|
* `earlyDataAccepted` {boolean}
|
|
|
|
|
|
|
|
### Callback: `OnBlockedCallback`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `this` {quic.QuicStream}
|
|
|
|
|
|
|
|
### Callback: `OnStreamErrorCallback`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `this` {quic.QuicStream}
|
|
|
|
* `error` {any}
|
|
|
|
|
|
|
|
## Diagnostic Channels
|
|
|
|
|
|
|
|
### Channel: `quic.endpoint.created`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `endpoint` {quic.QuicEndpoint}
|
|
|
|
* `config` {quic.EndpointOptions}
|
|
|
|
|
|
|
|
### Channel: `quic.endpoint.listen`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `endpoint` {quic.QuicEndpoint}
|
|
|
|
* `optoins` {quic.SessionOptions}
|
|
|
|
|
|
|
|
### Channel: `quic.endpoint.closing`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `endpoint` {quic.QuicEndpoint}
|
|
|
|
* `hasPendingError` {boolean}
|
|
|
|
|
|
|
|
### Channel: `quic.endpoint.closed`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `endpoint` {quic.QuicEndpoint}
|
|
|
|
|
|
|
|
### Channel: `quic.endpoint.error`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `endpoint` {quic.QuicEndpoint}
|
|
|
|
* `error` {any}
|
|
|
|
|
|
|
|
### Channel: `quic.endpoint.busy.change`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `endpoint` {quic.QuicEndpoint}
|
|
|
|
* `busy` {boolean}
|
|
|
|
|
|
|
|
### Channel: `quic.session.created.client`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### Channel: `quic.session.created.server`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### Channel: `quic.session.open.stream`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### Channel: `quic.session.received.stream`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### Channel: `quic.session.send.datagram`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### Channel: `quic.session.update.key`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### Channel: `quic.session.closing`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### Channel: `quic.session.closed`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### Channel: `quic.session.receive.datagram`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### Channel: `quic.session.receive.datagram.status`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### Channel: `quic.session.path.validation`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### Channel: `quic.session.ticket`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### Channel: `quic.session.version.negotiation`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|
|
|
|
|
|
|
|
### Channel: `quic.session.handshake`
|
|
|
|
|
|
|
|
<!-- YAML
|
2025-02-11 09:55:52 -05:00
|
|
|
added: v23.8.0
|
2024-11-24 14:57:24 -08:00
|
|
|
-->
|