UNPKG

coap

Version:

A CoAP library for node modelled after 'http'

61 lines (60 loc) 2.56 kB
import { EventEmitter } from 'events'; import { type AddressInfo } from 'net'; import { type CoapServerOptions, type requestListener, type CoapPacket, type MiddlewareParameters } from '../models/models'; import BlockCache from './cache'; import { Socket } from 'dgram'; import { LRUCache } from 'lru-cache'; import IncomingMessage from './incoming_message'; import { type Option, type ParsedPacket } from 'coap-packet'; declare class CoapLRUCache<K extends {}, V extends {}> extends LRUCache<K, V> { pruneTimer: NodeJS.Timeout; } interface Block2CacheEntry { buffer: Buffer; options: Option[]; } declare class CoAPServer extends EventEmitter { _options: CoapServerOptions; _proxiedRequests: Map<string, MiddlewareParameters>; _middlewares: Function[]; _multicastAddress: string | null; _multicastInterface: string | null; _lru: CoapLRUCache<string, any>; _series: any; _block1Cache: BlockCache<Buffer | {}>; _block2Cache: BlockCache<Block2CacheEntry | null>; _sock: Socket | EventEmitter | null; _internal_socket: boolean; _clientIdentifier: (request: IncomingMessage) => string; constructor(serverOptions?: CoapServerOptions | typeof requestListener, listener?: typeof requestListener); handleRequest(): (msg: Buffer, rsinfo: AddressInfo) => void; _sendError(payload: Buffer, rsinfo: AddressInfo, packet?: CoapPacket, code?: string): void; _sendProxied(packet: CoapPacket, proxyUri: string, callback: (error: Error | null, bytes: number) => void): void; _sendReverseProxied(packet: ParsedPacket, rsinfo: AddressInfo, callback?: (error: Error | null, bytes: number) => void): void; private generateSocket; listen(portOrCallback?: number | EventEmitter | ((err?: Error) => void), addressOrCallback?: string | ((err?: Error) => void), done?: (err?: Error) => void): this; close(done?: (err?: Error) => void): this; /** * Entry point for a new datagram from the client. * @param packet The packet that was sent from the client. * @param rsinfo Connection info */ _handle(packet: CoapPacket, rsinfo: AddressInfo): void; private saveAdditionalBlock2Options; /** * * @param request * @param packet * @returns */ _toCacheKey(request: IncomingMessage, packet: CoapPacket): string | null; /** * * @param request * @param packet * @param appendToken * @returns */ _toKey(request: IncomingMessage, packet: CoapPacket, appendToken: boolean): string; } export default CoAPServer;