@ntrip/caster
Version:
NTRIP caster
75 lines (74 loc) • 2.65 kB
TypeScript
/// <reference types="node" />
import { CasterTransportDefinition, CasterTransportInterface } from '../../caster';
import { Transport } from '../transport';
import tls = require('tls');
export declare enum NtripVersion {
V1 = 1,
V2 = 2
}
export interface NtripTransportOptions {
port: number;
tls?: tls.SecureContextOptions & tls.TlsOptions;
protocols?: {
http?: boolean;
rtsp?: boolean;
rtp?: boolean;
};
versions?: {
[NtripVersion.V1]?: boolean;
[NtripVersion.V2]?: boolean;
};
browserFavicon?: () => Buffer;
browserStreamAccess?: boolean;
}
export interface NtripTransportConnectionProperties {
protocol: 'http' | 'https' | 'rtsp' | 'rtsps' | 'rtp';
remote: {
host: string;
port: number;
family: string;
};
agent?: string;
version: NtripVersion;
toString: () => string;
}
/**
* NTRIP caster server for HTTP/RTSP/Plain-RTP
*/
export declare class NtripTransport extends Transport {
/** HTTP(S) server for accepting HTTP and RTSP connections, as well as injected plain RTP connections */
private server;
/** UDP server for plain RTP connections (array to accept socket for IPv4 and IPv6) */
private plainRtpSocket?;
/** Map of remote addresses to UDP sockets if plainRtpSocket intercepts (happens on Windows) TODO: remove */
private plainRtpClientSockets?;
/** Map of session numbers to RTP sessions */
private readonly rtpSessions;
/** Transport options */
private readonly options;
get description(): string;
connectionDescription(source: any): string;
protected constructor(manager: CasterTransportInterface, options: NtripTransportOptions);
static new(options: NtripTransportOptions): CasterTransportDefinition;
open(): void;
close(): void;
private accept;
private message;
/**
* Abstract request instance processor
*
* Mainly used to improve organization of code and avoid complex function names for various combinations of
* protocols and versions. Request processors are initially created by {@link NtripTransport#accept}.
*
* Contains properties for reference to the parent transport, overall caster manager, and request/response objects.
*/
private static RequestProcessor;
/** HTTP request instance processor */
private static HttpRequestProcessor;
/** RTSP request instance processor */
private static RtspRequestProcessor;
/** RTP request instance processor */
private static RtpRequestProcessor;
private getSourcetable;
private static parseCredentials;
}