UNPKG

@ntrip/caster

Version:
75 lines (74 loc) 2.65 kB
/// <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; }