@libp2p/tcp
Version:
A TCP transport for libp2p
60 lines • 2.12 kB
TypeScript
/**
* @packageDocumentation
*
* A [libp2p transport](https://docs.libp2p.io/concepts/transports/overview/) based on the TCP networking stack.
*
* @example
*
* ```TypeScript
* import { createLibp2p } from 'libp2p'
* import { tcp } from '@libp2p/tcp'
* import { multiaddr } from '@multiformats/multiaddr'
*
* const node = await createLibp2p({
* transports: [
* tcp()
* ]
* })
*
* const ma = multiaddr('/ip4/123.123.123.123/tcp/1234')
*
* // dial a TCP connection, timing out after 10 seconds
* const connection = await node.dial(ma, {
* signal: AbortSignal.timeout(10_000)
* })
*
* // use connection...
* ```
*/
import { serviceCapabilities, transportSymbol } from '@libp2p/interface';
import type { TCPComponents, TCPCreateListenerOptions, TCPDialEvents, TCPDialOptions, TCPOptions } from './index.js';
import type { Connection, Transport, Listener } from '@libp2p/interface';
import type { Multiaddr } from '@multiformats/multiaddr';
import type { Socket } from 'net';
export declare class TCP implements Transport<TCPDialEvents> {
private readonly opts;
private readonly metrics?;
private readonly components;
private readonly log;
constructor(components: TCPComponents, options?: TCPOptions);
readonly [transportSymbol] = true;
readonly [Symbol.toStringTag] = "@libp2p/tcp";
readonly [serviceCapabilities]: string[];
dial(ma: Multiaddr, options: TCPDialOptions): Promise<Connection>;
_connect(ma: Multiaddr, options: TCPDialOptions): Promise<Socket>;
/**
* Creates a TCP listener. The provided `handler` function will be called
* anytime a new incoming Connection has been successfully upgraded via
* `upgrader.upgradeInbound`.
*/
createListener(options: TCPCreateListenerOptions): Listener;
/**
* Takes a list of `Multiaddr`s and returns only valid TCP addresses
*/
listenFilter(multiaddrs: Multiaddr[]): Multiaddr[];
/**
* Filter check for all Multiaddrs that this transport can dial
*/
dialFilter(multiaddrs: Multiaddr[]): Multiaddr[];
}
//# sourceMappingURL=tcp.d.ts.map