react-native-nitro-dgram 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/CMakeLists.txt +24 -0
- package/android/OnLoad.cpp +6 -0
- package/android/build.gradle +64 -0
- package/android/libs/arm64-v8a/librust_c_udp.so +0 -0
- package/android/libs/armeabi-v7a/librust_c_udp.so +0 -0
- package/android/libs/x86/librust_c_udp.so +0 -0
- package/android/libs/x86_64/librust_c_udp.so +0 -0
- package/android/src/main/java/com/margelo/nitro/udp/NitroUdpPackage.java +25 -0
- package/cpp/HybridUdpDriver.cpp +21 -0
- package/cpp/HybridUdpDriver.hpp +18 -0
- package/cpp/HybridUdpSocketDriver.cpp +252 -0
- package/cpp/HybridUdpSocketDriver.hpp +88 -0
- package/cpp/UdpBindings.hpp +83 -0
- package/cpp/UdpManager.hpp +108 -0
- package/ios/Frameworks/RustCUdp.xcframework/Info.plist +44 -0
- package/ios/Frameworks/RustCUdp.xcframework/ios-arm64/RustCUdp.framework/Info.plist +20 -0
- package/ios/Frameworks/RustCUdp.xcframework/ios-arm64/RustCUdp.framework/RustCUdp +0 -0
- package/ios/Frameworks/RustCUdp.xcframework/ios-arm64_x86_64-simulator/RustCUdp.framework/Info.plist +20 -0
- package/ios/Frameworks/RustCUdp.xcframework/ios-arm64_x86_64-simulator/RustCUdp.framework/RustCUdp +0 -0
- package/lib/Driver.d.ts +2 -0
- package/lib/Driver.js +6 -0
- package/lib/Driver.js.map +1 -0
- package/lib/Udp.nitro.d.ts +54 -0
- package/lib/Udp.nitro.js +3 -0
- package/lib/Udp.nitro.js.map +1 -0
- package/lib/index.d.ts +82 -0
- package/lib/index.js +375 -0
- package/lib/index.js.map +1 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/RustCUdp+autolinking.cmake +84 -0
- package/nitrogen/generated/android/RustCUdp+autolinking.gradle +27 -0
- package/nitrogen/generated/android/RustCUdpOnLoad.cpp +53 -0
- package/nitrogen/generated/android/RustCUdpOnLoad.hpp +25 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__shared_ptr_ArrayBuffer__std__string_double.hpp +78 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +76 -0
- package/nitrogen/generated/android/c++/JHybridUdpDriverSpec.cpp +57 -0
- package/nitrogen/generated/android/c++/JHybridUdpDriverSpec.hpp +65 -0
- package/nitrogen/generated/android/c++/JHybridUdpSocketDriverSpec.cpp +261 -0
- package/nitrogen/generated/android/c++/JHybridUdpSocketDriverSpec.hpp +97 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/udp/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/udp/Func_void_std__shared_ptr_ArrayBuffer__std__string_double.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/udp/Func_void_std__string.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/udp/HybridUdpDriverSpec.kt +57 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/udp/HybridUdpSocketDriverSpec.kt +212 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/udp/RustCUdpOnLoad.kt +35 -0
- package/nitrogen/generated/ios/RustCUdp+autolinking.rb +60 -0
- package/nitrogen/generated/ios/RustCUdp-Swift-Cxx-Bridge.cpp +74 -0
- package/nitrogen/generated/ios/RustCUdp-Swift-Cxx-Bridge.hpp +195 -0
- package/nitrogen/generated/ios/RustCUdp-Swift-Cxx-Umbrella.hpp +53 -0
- package/nitrogen/generated/ios/RustCUdpAutolinking.mm +35 -0
- package/nitrogen/generated/ios/RustCUdpAutolinking.swift +12 -0
- package/nitrogen/generated/ios/c++/HybridUdpDriverSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridUdpDriverSpecSwift.hpp +80 -0
- package/nitrogen/generated/ios/c++/HybridUdpSocketDriverSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridUdpSocketDriverSpecSwift.hpp +302 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_ArrayBuffer__std__string_double.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridUdpDriverSpec.swift +56 -0
- package/nitrogen/generated/ios/swift/HybridUdpDriverSpec_cxx.swift +141 -0
- package/nitrogen/generated/ios/swift/HybridUdpSocketDriverSpec.swift +84 -0
- package/nitrogen/generated/ios/swift/HybridUdpSocketDriverSpec_cxx.swift +527 -0
- package/nitrogen/generated/shared/c++/HybridNitroBufferSpec.cpp +32 -0
- package/nitrogen/generated/shared/c++/HybridNitroBufferSpec.hpp +74 -0
- package/nitrogen/generated/shared/c++/HybridUdpDriverSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridUdpDriverSpec.hpp +66 -0
- package/nitrogen/generated/shared/c++/HybridUdpSocketDriverSpec.cpp +54 -0
- package/nitrogen/generated/shared/c++/HybridUdpSocketDriverSpec.hpp +98 -0
- package/package.json +59 -0
- package/react-native-nitro-dgram.podspec +45 -0
- package/src/Driver.ts +4 -0
- package/src/Udp.nitro.ts +55 -0
- package/src/index.ts +414 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include "UdpBindings.hpp"
|
|
4
|
+
#include <functional>
|
|
5
|
+
#include <memory>
|
|
6
|
+
#include <shared_mutex>
|
|
7
|
+
#include <string>
|
|
8
|
+
#include <unordered_map>
|
|
9
|
+
#include <vector>
|
|
10
|
+
|
|
11
|
+
#define UM_TAG "UdpManager"
|
|
12
|
+
|
|
13
|
+
#ifdef __ANDROID__
|
|
14
|
+
#include <android/log.h>
|
|
15
|
+
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, UM_TAG, __VA_ARGS__)
|
|
16
|
+
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN, UM_TAG, __VA_ARGS__)
|
|
17
|
+
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, UM_TAG, __VA_ARGS__)
|
|
18
|
+
#else
|
|
19
|
+
#include <cstdio>
|
|
20
|
+
#define LOGI(...) \
|
|
21
|
+
printf("[" UM_TAG "] " __VA_ARGS__); \
|
|
22
|
+
printf("\n")
|
|
23
|
+
#define LOGW(...) \
|
|
24
|
+
printf("[" UM_TAG "] WARN: " __VA_ARGS__); \
|
|
25
|
+
printf("\n")
|
|
26
|
+
#define LOGE(...) \
|
|
27
|
+
printf("[" UM_TAG "] ERROR: " __VA_ARGS__); \
|
|
28
|
+
printf("\n")
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
namespace margelo::nitro::udp {
|
|
32
|
+
|
|
33
|
+
class UdpManager {
|
|
34
|
+
public:
|
|
35
|
+
using EventHandler =
|
|
36
|
+
std::function<void(int eventType, const uint8_t *data, size_t len,
|
|
37
|
+
const std::string &address, int port)>;
|
|
38
|
+
|
|
39
|
+
static UdpManager &shared() {
|
|
40
|
+
static UdpManager instance;
|
|
41
|
+
return instance;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
UdpManager() {
|
|
45
|
+
LOGI("Initializing UdpManager...");
|
|
46
|
+
::udp::udp_init(
|
|
47
|
+
[](uint32_t id, int event_type, const uint8_t *data, uintptr_t len,
|
|
48
|
+
const char *address, int port, void *context) {
|
|
49
|
+
auto mgr = static_cast<UdpManager *>(context);
|
|
50
|
+
mgr->dispatch(id, event_type, data, static_cast<size_t>(len),
|
|
51
|
+
address ? address : "", port);
|
|
52
|
+
},
|
|
53
|
+
this);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
public:
|
|
57
|
+
void registerHandler(uint32_t id, EventHandler handler) {
|
|
58
|
+
LOGI("Registering handler for ID %u", id);
|
|
59
|
+
std::unique_lock lock(_mutex);
|
|
60
|
+
_handlers[id] = handler;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
void unregisterHandler(uint32_t id) {
|
|
64
|
+
LOGI("Unregistering handler for ID %u", id);
|
|
65
|
+
std::unique_lock lock(_mutex);
|
|
66
|
+
_handlers.erase(id);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
private:
|
|
70
|
+
void dispatch(uint32_t id, int eventType, const uint8_t *data, size_t len,
|
|
71
|
+
const std::string &address, int port) {
|
|
72
|
+
const char *eventName = "UNKNOWN";
|
|
73
|
+
switch (eventType) {
|
|
74
|
+
case 1:
|
|
75
|
+
eventName = "DATA";
|
|
76
|
+
break;
|
|
77
|
+
case 2:
|
|
78
|
+
eventName = "ERROR";
|
|
79
|
+
break;
|
|
80
|
+
case 3:
|
|
81
|
+
eventName = "CLOSE";
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
LOGI("dispatch: id=%u, event=%s(%d), len=%zu, addr=%s:%d", id, eventName,
|
|
86
|
+
eventType, len, address.c_str(), port);
|
|
87
|
+
|
|
88
|
+
EventHandler handler;
|
|
89
|
+
{
|
|
90
|
+
std::shared_lock lock(_mutex);
|
|
91
|
+
auto it = _handlers.find(id);
|
|
92
|
+
if (it != _handlers.end()) {
|
|
93
|
+
handler = it->second;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (handler) {
|
|
98
|
+
handler(eventType, data, len, address, port);
|
|
99
|
+
} else {
|
|
100
|
+
LOGW("No handler found for id=%u, event=%s", id, eventName);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
std::shared_mutex _mutex;
|
|
105
|
+
std::unordered_map<uint32_t, EventHandler> _handlers;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
} // namespace margelo::nitro::udp
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
+
<plist version="1.0">
|
|
4
|
+
<dict>
|
|
5
|
+
<key>AvailableLibraries</key>
|
|
6
|
+
<array>
|
|
7
|
+
<dict>
|
|
8
|
+
<key>BinaryPath</key>
|
|
9
|
+
<string>RustCUdp.framework/RustCUdp</string>
|
|
10
|
+
<key>LibraryIdentifier</key>
|
|
11
|
+
<string>ios-arm64</string>
|
|
12
|
+
<key>LibraryPath</key>
|
|
13
|
+
<string>RustCUdp.framework</string>
|
|
14
|
+
<key>SupportedArchitectures</key>
|
|
15
|
+
<array>
|
|
16
|
+
<string>arm64</string>
|
|
17
|
+
</array>
|
|
18
|
+
<key>SupportedPlatform</key>
|
|
19
|
+
<string>ios</string>
|
|
20
|
+
</dict>
|
|
21
|
+
<dict>
|
|
22
|
+
<key>BinaryPath</key>
|
|
23
|
+
<string>RustCUdp.framework/RustCUdp</string>
|
|
24
|
+
<key>LibraryIdentifier</key>
|
|
25
|
+
<string>ios-arm64_x86_64-simulator</string>
|
|
26
|
+
<key>LibraryPath</key>
|
|
27
|
+
<string>RustCUdp.framework</string>
|
|
28
|
+
<key>SupportedArchitectures</key>
|
|
29
|
+
<array>
|
|
30
|
+
<string>arm64</string>
|
|
31
|
+
<string>x86_64</string>
|
|
32
|
+
</array>
|
|
33
|
+
<key>SupportedPlatform</key>
|
|
34
|
+
<string>ios</string>
|
|
35
|
+
<key>SupportedPlatformVariant</key>
|
|
36
|
+
<string>simulator</string>
|
|
37
|
+
</dict>
|
|
38
|
+
</array>
|
|
39
|
+
<key>CFBundlePackageType</key>
|
|
40
|
+
<string>XFWK</string>
|
|
41
|
+
<key>XCFrameworkFormatVersion</key>
|
|
42
|
+
<string>1.0</string>
|
|
43
|
+
</dict>
|
|
44
|
+
</plist>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
+
<plist version="1.0">
|
|
4
|
+
<dict>
|
|
5
|
+
<key>CFBundleExecutable</key>
|
|
6
|
+
<string>RustCUdp</string>
|
|
7
|
+
<key>CFBundleIdentifier</key>
|
|
8
|
+
<string>com.iwater.RustCUdp</string>
|
|
9
|
+
<key>CFBundleName</key>
|
|
10
|
+
<string>RustCUdp</string>
|
|
11
|
+
<key>CFBundlePackageType</key>
|
|
12
|
+
<string>FMWK</string>
|
|
13
|
+
<key>CFBundleVersion</key>
|
|
14
|
+
<string>1.0</string>
|
|
15
|
+
<key>CFBundleShortVersionString</key>
|
|
16
|
+
<string>1.0</string>
|
|
17
|
+
<key>MinimumOSVersion</key>
|
|
18
|
+
<string>13.0</string>
|
|
19
|
+
</dict>
|
|
20
|
+
</plist>
|
package/ios/Frameworks/RustCUdp.xcframework/ios-arm64_x86_64-simulator/RustCUdp.framework/Info.plist
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
+
<plist version="1.0">
|
|
4
|
+
<dict>
|
|
5
|
+
<key>CFBundleExecutable</key>
|
|
6
|
+
<string>RustCUdp</string>
|
|
7
|
+
<key>CFBundleIdentifier</key>
|
|
8
|
+
<string>com.iwater.RustCUdp</string>
|
|
9
|
+
<key>CFBundleName</key>
|
|
10
|
+
<string>RustCUdp</string>
|
|
11
|
+
<key>CFBundlePackageType</key>
|
|
12
|
+
<string>FMWK</string>
|
|
13
|
+
<key>CFBundleVersion</key>
|
|
14
|
+
<string>1.0</string>
|
|
15
|
+
<key>CFBundleShortVersionString</key>
|
|
16
|
+
<string>1.0</string>
|
|
17
|
+
<key>MinimumOSVersion</key>
|
|
18
|
+
<string>13.0</string>
|
|
19
|
+
</dict>
|
|
20
|
+
</plist>
|
package/ios/Frameworks/RustCUdp.xcframework/ios-arm64_x86_64-simulator/RustCUdp.framework/RustCUdp
ADDED
|
Binary file
|
package/lib/Driver.d.ts
ADDED
package/lib/Driver.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Driver = void 0;
|
|
4
|
+
const react_native_nitro_modules_1 = require("react-native-nitro-modules");
|
|
5
|
+
exports.Driver = react_native_nitro_modules_1.NitroModules.createHybridObject('UdpDriver');
|
|
6
|
+
//# sourceMappingURL=Driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Driver.js","sourceRoot":"","sources":["../src/Driver.ts"],"names":[],"mappings":";;;AAAA,2EAAyD;AAG5C,QAAA,MAAM,GAAG,yCAAY,CAAC,kBAAkB,CAAY,WAAW,CAAC,CAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { type HybridObject } from 'react-native-nitro-modules';
|
|
2
|
+
/**
|
|
3
|
+
* @specs
|
|
4
|
+
*/
|
|
5
|
+
export interface UdpSocketDriver extends HybridObject<{
|
|
6
|
+
ios: 'swift';
|
|
7
|
+
android: 'kotlin';
|
|
8
|
+
}> {
|
|
9
|
+
readonly id: number;
|
|
10
|
+
bind(port: number, address: string, ipv6Only: boolean): number;
|
|
11
|
+
connect(port: number, address: string): number;
|
|
12
|
+
disconnect(): number;
|
|
13
|
+
send(data: ArrayBuffer, port: number, address: string): number;
|
|
14
|
+
sendMultiple(data: ArrayBuffer[], port: number, address: string): number;
|
|
15
|
+
close(): void;
|
|
16
|
+
setBroadcast(flag: boolean): number;
|
|
17
|
+
setTTL(ttl: number): number;
|
|
18
|
+
setMulticastTTL(ttl: number): number;
|
|
19
|
+
setMulticastLoopback(flag: boolean): number;
|
|
20
|
+
setMulticastInterface(interfaceAddress: string): number;
|
|
21
|
+
addMembership(multicastAddress: string, interfaceAddress?: string): number;
|
|
22
|
+
dropMembership(multicastAddress: string, interfaceAddress?: string): number;
|
|
23
|
+
addSourceSpecificMembership(sourceAddress: string, groupAddress: string, interfaceAddress?: string): number;
|
|
24
|
+
dropSourceSpecificMembership(sourceAddress: string, groupAddress: string, interfaceAddress?: string): number;
|
|
25
|
+
getLocalAddress(): string;
|
|
26
|
+
getLocalPort(): number;
|
|
27
|
+
getRemoteAddress(): string;
|
|
28
|
+
getRemotePort(): number;
|
|
29
|
+
getRecvBufferSize(): number;
|
|
30
|
+
setRecvBufferSize(size: number): number;
|
|
31
|
+
getSendBufferSize(): number;
|
|
32
|
+
setSendBufferSize(size: number): number;
|
|
33
|
+
getSendQueueCount(): number;
|
|
34
|
+
getSendQueueSize(): number;
|
|
35
|
+
onMessage: (data: ArrayBuffer, address: string, port: number) => void;
|
|
36
|
+
onConnect: () => void;
|
|
37
|
+
onError: (error: string) => void;
|
|
38
|
+
onClose: () => void;
|
|
39
|
+
}
|
|
40
|
+
export interface RemoteInfo {
|
|
41
|
+
address: string;
|
|
42
|
+
family: 'IPv4' | 'IPv6';
|
|
43
|
+
port: number;
|
|
44
|
+
size: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @specs
|
|
48
|
+
*/
|
|
49
|
+
export interface UdpDriver extends HybridObject<{
|
|
50
|
+
ios: 'swift';
|
|
51
|
+
android: 'kotlin';
|
|
52
|
+
}> {
|
|
53
|
+
createSocket(id?: string): UdpSocketDriver;
|
|
54
|
+
}
|
package/lib/Udp.nitro.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Udp.nitro.js","sourceRoot":"","sources":["../src/Udp.nitro.ts"],"names":[],"mappings":""}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { EventEmitter } from 'eventemitter3';
|
|
2
|
+
import type { RemoteInfo } from './Udp.nitro';
|
|
3
|
+
import { Buffer } from 'react-native-nitro-buffer';
|
|
4
|
+
export type SocketType = 'udp4' | 'udp6';
|
|
5
|
+
export declare class BlockList {
|
|
6
|
+
private _rules;
|
|
7
|
+
addAddress(address: string, family?: 'ipv4' | 'ipv6'): void;
|
|
8
|
+
addRange(start: string, end: string, family?: 'ipv4' | 'ipv6'): void;
|
|
9
|
+
addSubnet(net: string, prefix: number, family?: 'ipv4' | 'ipv6'): void;
|
|
10
|
+
check(address: string, family?: 'ipv4' | 'ipv6'): boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface SocketOptions {
|
|
13
|
+
type: SocketType;
|
|
14
|
+
reuseAddr?: boolean;
|
|
15
|
+
reusePort?: boolean;
|
|
16
|
+
ipv6Only?: boolean;
|
|
17
|
+
recvBufferSize?: number;
|
|
18
|
+
sendBufferSize?: number;
|
|
19
|
+
signal?: AbortSignal;
|
|
20
|
+
lookup?: (hostname: string, options: any, callback: (err: Error | null, address: string, family: number) => void) => void;
|
|
21
|
+
receiveBlockList?: BlockList;
|
|
22
|
+
sendBlockList?: BlockList;
|
|
23
|
+
}
|
|
24
|
+
export declare class Socket extends EventEmitter {
|
|
25
|
+
private _driver;
|
|
26
|
+
private _type;
|
|
27
|
+
private _bound;
|
|
28
|
+
private _closed;
|
|
29
|
+
private _connected;
|
|
30
|
+
private _signal?;
|
|
31
|
+
private _lookup?;
|
|
32
|
+
private _receiveBlockList?;
|
|
33
|
+
private _sendBlockList?;
|
|
34
|
+
constructor(type: SocketType | SocketOptions);
|
|
35
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
36
|
+
private _setupEvents;
|
|
37
|
+
bind(port?: number, address?: string, callback?: () => void): this;
|
|
38
|
+
bind(options: {
|
|
39
|
+
port?: number;
|
|
40
|
+
address?: string;
|
|
41
|
+
exclusive?: boolean;
|
|
42
|
+
}, callback?: () => void): this;
|
|
43
|
+
connect(port: number, address?: string, callback?: () => void): void;
|
|
44
|
+
disconnect(): void;
|
|
45
|
+
send(msg: string | Uint8Array | ReadonlyArray<any>, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void;
|
|
46
|
+
send(msg: string | Uint8Array, offset: number, length: number, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void;
|
|
47
|
+
close(callback?: () => void): this;
|
|
48
|
+
address(): {
|
|
49
|
+
address: string;
|
|
50
|
+
family: string;
|
|
51
|
+
port: number;
|
|
52
|
+
};
|
|
53
|
+
remoteAddress(): {
|
|
54
|
+
address: string;
|
|
55
|
+
family: string;
|
|
56
|
+
port: number;
|
|
57
|
+
};
|
|
58
|
+
setBroadcast(flag: boolean): void;
|
|
59
|
+
setTTL(ttl: number): void;
|
|
60
|
+
setMulticastTTL(ttl: number): void;
|
|
61
|
+
setMulticastLoopback(flag: boolean): void;
|
|
62
|
+
setMulticastInterface(interfaceAddress: string): void;
|
|
63
|
+
addMembership(multicastAddress: string, interfaceAddress?: string): void;
|
|
64
|
+
dropMembership(multicastAddress: string, interfaceAddress?: string): void;
|
|
65
|
+
addSourceSpecificMembership(sourceAddress: string, groupAddress: string, interfaceAddress?: string): void;
|
|
66
|
+
dropSourceSpecificMembership(sourceAddress: string, groupAddress: string, interfaceAddress?: string): void;
|
|
67
|
+
getRecvBufferSize(): number;
|
|
68
|
+
setRecvBufferSize(size: number): void;
|
|
69
|
+
getSendBufferSize(): number;
|
|
70
|
+
setSendBufferSize(size: number): void;
|
|
71
|
+
getSendQueueCount(): number;
|
|
72
|
+
getSendQueueSize(): number;
|
|
73
|
+
ref(): this;
|
|
74
|
+
unref(): this;
|
|
75
|
+
}
|
|
76
|
+
export declare function createSocket(type: SocketType | SocketOptions, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket;
|
|
77
|
+
declare const _default: {
|
|
78
|
+
createSocket: typeof createSocket;
|
|
79
|
+
Socket: typeof Socket;
|
|
80
|
+
BlockList: typeof BlockList;
|
|
81
|
+
};
|
|
82
|
+
export default _default;
|