coap
Version:
A CoAP library for node modelled after 'http'
108 lines (107 loc) • 3.12 kB
TypeScript
import { CoapMethod, OptionName, Packet, ParsedPacket } from 'coap-packet';
import { Socket } from 'dgram';
import { AddressInfo } from 'net';
import Agent from '../lib/agent';
import IncomingMessage from '../lib/incoming_message';
import OutgoingMessage from '../lib/outgoing_message';
import CoAPServer from '../lib/server';
export declare function requestListener(req: IncomingMessage, res: OutgoingMessage): void;
export type OptionValue = null | string | number | Buffer | Buffer[];
export type BlockCacheMap<T> = Map<string, {
payload: T;
timeoutId: NodeJS.Timeout;
}>;
export type CoapOptions = Partial<Record<OptionName, OptionValue>>;
export interface Option {
name: number | OptionName | string;
value: OptionValue;
}
export interface Block {
more: number;
num: number;
size: number;
}
export interface MiddlewareParameters {
raw: Buffer;
rsinfo: AddressInfo;
server: CoAPServer;
packet?: ParsedPacket;
proxy?: string;
}
export interface CoapPacket extends Packet {
piggybackReplyMs?: number;
url?: string;
}
export interface ParametersUpdate {
ackTimeout?: number;
ackRandomFactor?: number;
maxRetransmit?: number;
nstart?: number;
defaultLeisure?: number;
probingRate?: number;
maxLatency?: number;
piggybackReplyMs?: number;
maxPayloadSize?: number;
maxMessageSize?: number;
sendAcksForNonConfirmablePackets?: boolean;
pruneTimerPeriod?: number;
}
export interface Parameters {
ackTimeout: number;
ackRandomFactor: number;
maxRetransmit: number;
nstart: number;
defaultLeisure: number;
probingRate: number;
maxLatency: number;
piggybackReplyMs: number;
nonLifetime: number;
coapPort: number;
maxPayloadSize: number;
maxMessageSize: number;
sendAcksForNonConfirmablePackets: boolean;
pruneTimerPeriod: number;
maxTransmitSpan: number;
maxTransmitWait: number;
processingDelay: number;
exchangeLifetime: number;
maxRTT: number;
defaultTiming?: () => void;
refreshTiming?: (parameters?: Parameters) => void;
}
export interface CoapRequestParams {
host?: string;
hostname?: string;
port?: number;
method?: CoapMethod;
confirmable?: boolean;
observe?: 0 | 1 | boolean | string;
pathname?: string;
query?: string;
options?: Partial<Record<OptionName, OptionValue>>;
headers?: Partial<Record<OptionName, OptionValue>>;
agent?: Agent | false;
proxyUri?: string;
multicast?: boolean;
multicastTimeout?: number;
retrySend?: number;
token?: Buffer;
contentFormat?: string | number;
accept?: string | number;
}
export interface CoapServerOptions {
type?: 'udp4' | 'udp6';
proxy?: boolean;
multicastAddress?: string;
multicastInterface?: string;
piggybackReplyMs?: number;
sendAcksForNonConfirmablePackets?: boolean;
clientIdentifier?: (request: IncomingMessage) => string;
reuseAddr?: boolean;
cacheSize?: number;
}
export interface AgentOptions {
type?: 'udp4' | 'udp6';
socket?: Socket;
port?: number;
}