Projekt

Obecné

Profil

Stáhnout (6.99 KB) Statistiky
| Větev: | Revize:
1
declare module "dgram" {
2
    import { AddressInfo } from "net";
3
    import * as dns from "dns";
4
    import * as events from "events";
5

    
6
    interface RemoteInfo {
7
        address: string;
8
        family: 'IPv4' | 'IPv6';
9
        port: number;
10
        size: number;
11
    }
12

    
13
    interface BindOptions {
14
        port?: number;
15
        address?: string;
16
        exclusive?: boolean;
17
        fd?: number;
18
    }
19

    
20
    type SocketType = "udp4" | "udp6";
21

    
22
    interface SocketOptions {
23
        type: SocketType;
24
        reuseAddr?: boolean;
25
        /**
26
         * @default false
27
         */
28
        ipv6Only?: boolean;
29
        recvBufferSize?: number;
30
        sendBufferSize?: number;
31
        lookup?: (hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void;
32
    }
33

    
34
    function createSocket(type: SocketType, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket;
35
    function createSocket(options: SocketOptions, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket;
36

    
37
    class Socket extends events.EventEmitter {
38
        addMembership(multicastAddress: string, multicastInterface?: string): void;
39
        address(): AddressInfo;
40
        bind(port?: number, address?: string, callback?: () => void): void;
41
        bind(port?: number, callback?: () => void): void;
42
        bind(callback?: () => void): void;
43
        bind(options: BindOptions, callback?: () => void): void;
44
        close(callback?: () => void): void;
45
        connect(port: number, address?: string, callback?: () => void): void;
46
        connect(port: number, callback: () => void): void;
47
        disconnect(): void;
48
        dropMembership(multicastAddress: string, multicastInterface?: string): void;
49
        getRecvBufferSize(): number;
50
        getSendBufferSize(): number;
51
        ref(): this;
52
        remoteAddress(): AddressInfo;
53
        send(msg: string | Uint8Array | any[], port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void;
54
        send(msg: string | Uint8Array | any[], port?: number, callback?: (error: Error | null, bytes: number) => void): void;
55
        send(msg: string | Uint8Array | any[], callback?: (error: Error | null, bytes: number) => void): void;
56
        send(msg: string | Uint8Array, offset: number, length: number, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void;
57
        send(msg: string | Uint8Array, offset: number, length: number, port?: number, callback?: (error: Error | null, bytes: number) => void): void;
58
        send(msg: string | Uint8Array, offset: number, length: number, callback?: (error: Error | null, bytes: number) => void): void;
59
        setBroadcast(flag: boolean): void;
60
        setMulticastInterface(multicastInterface: string): void;
61
        setMulticastLoopback(flag: boolean): void;
62
        setMulticastTTL(ttl: number): void;
63
        setRecvBufferSize(size: number): void;
64
        setSendBufferSize(size: number): void;
65
        setTTL(ttl: number): void;
66
        unref(): this;
67
        /**
68
         * Tells the kernel to join a source-specific multicast channel at the given
69
         * `sourceAddress` and `groupAddress`, using the `multicastInterface` with the
70
         * `IP_ADD_SOURCE_MEMBERSHIP` socket option.
71
         * If the `multicastInterface` argument
72
         * is not specified, the operating system will choose one interface and will add
73
         * membership to it.
74
         * To add membership to every available interface, call
75
         * `socket.addSourceSpecificMembership()` multiple times, once per interface.
76
         */
77
        addSourceSpecificMembership(sourceAddress: string, groupAddress: string, multicastInterface?: string): void;
78

    
79
        /**
80
         * Instructs the kernel to leave a source-specific multicast channel at the given
81
         * `sourceAddress` and `groupAddress` using the `IP_DROP_SOURCE_MEMBERSHIP`
82
         * socket option. This method is automatically called by the kernel when the
83
         * socket is closed or the process terminates, so most apps will never have
84
         * reason to call this.
85
         *
86
         * If `multicastInterface` is not specified, the operating system will attempt to
87
         * drop membership on all valid interfaces.
88
         */
89
        dropSourceSpecificMembership(sourceAddress: string, groupAddress: string, multicastInterface?: string): void;
90

    
91
        /**
92
         * events.EventEmitter
93
         * 1. close
94
         * 2. connect
95
         * 3. error
96
         * 4. listening
97
         * 5. message
98
         */
99
        addListener(event: string, listener: (...args: any[]) => void): this;
100
        addListener(event: "close", listener: () => void): this;
101
        addListener(event: "connect", listener: () => void): this;
102
        addListener(event: "error", listener: (err: Error) => void): this;
103
        addListener(event: "listening", listener: () => void): this;
104
        addListener(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;
105

    
106
        emit(event: string | symbol, ...args: any[]): boolean;
107
        emit(event: "close"): boolean;
108
        emit(event: "connect"): boolean;
109
        emit(event: "error", err: Error): boolean;
110
        emit(event: "listening"): boolean;
111
        emit(event: "message", msg: Buffer, rinfo: RemoteInfo): boolean;
112

    
113
        on(event: string, listener: (...args: any[]) => void): this;
114
        on(event: "close", listener: () => void): this;
115
        on(event: "connect", listener: () => void): this;
116
        on(event: "error", listener: (err: Error) => void): this;
117
        on(event: "listening", listener: () => void): this;
118
        on(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;
119

    
120
        once(event: string, listener: (...args: any[]) => void): this;
121
        once(event: "close", listener: () => void): this;
122
        once(event: "connect", listener: () => void): this;
123
        once(event: "error", listener: (err: Error) => void): this;
124
        once(event: "listening", listener: () => void): this;
125
        once(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;
126

    
127
        prependListener(event: string, listener: (...args: any[]) => void): this;
128
        prependListener(event: "close", listener: () => void): this;
129
        prependListener(event: "connect", listener: () => void): this;
130
        prependListener(event: "error", listener: (err: Error) => void): this;
131
        prependListener(event: "listening", listener: () => void): this;
132
        prependListener(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;
133

    
134
        prependOnceListener(event: string, listener: (...args: any[]) => void): this;
135
        prependOnceListener(event: "close", listener: () => void): this;
136
        prependOnceListener(event: "connect", listener: () => void): this;
137
        prependOnceListener(event: "error", listener: (err: Error) => void): this;
138
        prependOnceListener(event: "listening", listener: () => void): this;
139
        prependOnceListener(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;
140
    }
141
}
(12-12/45)