@libp2p/websockets 9.2.19 → 10.0.0-049bfa0fa
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/dist/index.min.js +1 -1
- package/dist/index.min.js.map +4 -4
- package/dist/src/index.d.ts +15 -13
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +26 -41
- package/dist/src/index.js.map +1 -1
- package/dist/src/listener.d.ts +5 -1
- package/dist/src/listener.d.ts.map +1 -1
- package/dist/src/listener.js +32 -30
- package/dist/src/listener.js.map +1 -1
- package/dist/src/utils.d.ts +7 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +30 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/src/websocket-to-conn.d.ts +9 -0
- package/dist/src/websocket-to-conn.d.ts.map +1 -0
- package/dist/src/websocket-to-conn.js +83 -0
- package/dist/src/websocket-to-conn.js.map +1 -0
- package/package.json +14 -13
- package/src/index.ts +41 -61
- package/src/listener.ts +37 -32
- package/src/utils.ts +36 -0
- package/src/websocket-to-conn.ts +108 -0
- package/dist/src/filters.d.ts +0 -18
- package/dist/src/filters.d.ts.map +0 -1
- package/dist/src/filters.js +0 -34
- package/dist/src/filters.js.map +0 -1
- package/dist/src/socket-to-conn.d.ts +0 -11
- package/dist/src/socket-to-conn.d.ts.map +0 -1
- package/dist/src/socket-to-conn.js +0 -88
- package/dist/src/socket-to-conn.js.map +0 -1
- package/dist/typedoc-urls.json +0 -20
- package/src/filters.ts +0 -38
- package/src/socket-to-conn.ts +0 -114
package/dist/src/index.d.ts
CHANGED
|
@@ -22,22 +22,13 @@
|
|
|
22
22
|
* await node.dial(ma)
|
|
23
23
|
* ```
|
|
24
24
|
*/
|
|
25
|
-
import type { Transport,
|
|
25
|
+
import type { Transport, AbortOptions, ComponentLogger, OutboundConnectionUpgradeEvents, Metrics, CounterGroup, Libp2pEvents } from '@libp2p/interface';
|
|
26
26
|
import type { WebSocketOptions } from 'it-ws/client';
|
|
27
27
|
import type { TypedEventTarget } from 'main-event';
|
|
28
28
|
import type http from 'node:http';
|
|
29
29
|
import type https from 'node:https';
|
|
30
30
|
import type { ProgressEvent } from 'progress-events';
|
|
31
|
-
import type { ClientOptions } from 'ws';
|
|
32
31
|
export interface WebSocketsInit extends AbortOptions, WebSocketOptions {
|
|
33
|
-
/**
|
|
34
|
-
* @deprecated Use a ConnectionGater instead
|
|
35
|
-
*/
|
|
36
|
-
filter?: MultiaddrFilter;
|
|
37
|
-
/**
|
|
38
|
-
* Options used to create WebSockets
|
|
39
|
-
*/
|
|
40
|
-
websocket?: ClientOptions;
|
|
41
32
|
/**
|
|
42
33
|
* Options used to create the HTTP server
|
|
43
34
|
*/
|
|
@@ -48,11 +39,22 @@ export interface WebSocketsInit extends AbortOptions, WebSocketOptions {
|
|
|
48
39
|
*/
|
|
49
40
|
https?: https.ServerOptions;
|
|
50
41
|
/**
|
|
51
|
-
*
|
|
42
|
+
* How large the outgoing [bufferedAmount](https://websockets.spec.whatwg.org/#dom-websocket-bufferedamount)
|
|
43
|
+
* property of incoming and outgoing websockets is allowed to get in bytes.
|
|
44
|
+
*
|
|
45
|
+
* If this limit is exceeded, backpressure will be applied to the writer.
|
|
46
|
+
*
|
|
47
|
+
* @default 4_194_304
|
|
48
|
+
*/
|
|
49
|
+
maxBufferedAmount?: number;
|
|
50
|
+
/**
|
|
51
|
+
* If the [bufferedAmount](https://websockets.spec.whatwg.org/#dom-websocket-bufferedamount)
|
|
52
|
+
* property of a WebSocket exceeds `maxBufferedAmount`, poll the field every
|
|
53
|
+
* this number of ms to see if the socket can accept new data.
|
|
52
54
|
*
|
|
53
|
-
* @
|
|
55
|
+
* @default 500
|
|
54
56
|
*/
|
|
55
|
-
|
|
57
|
+
bufferedAmountPollInterval?: number;
|
|
56
58
|
}
|
|
57
59
|
export interface WebSocketsComponents {
|
|
58
60
|
logger: ComponentLogger;
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,OAAO,KAAK,EAAE,SAAS,EAAyD,YAAY,EAAE,eAAe,EAAsB,+BAA+B,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAElO,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,MAAM,WAAW,cAAe,SAAQ,YAAY,EAAE,gBAAgB;IACpE;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,CAAA;IAEzB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAE3B;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;;;;;OAMG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAA;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IACtC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,MAAM,MAAM,oBAAoB,GAC9B,+BAA+B,GAC/B,aAAa,CAAC,4BAA4B,CAAC,CAAA;AA6G7C,wBAAgB,UAAU,CAAE,IAAI,GAAE,cAAmB,GAAG,CAAC,UAAU,EAAE,oBAAoB,KAAK,SAAS,CAItG"}
|
package/dist/src/index.js
CHANGED
|
@@ -23,14 +23,12 @@
|
|
|
23
23
|
* ```
|
|
24
24
|
*/
|
|
25
25
|
import { transportSymbol, serviceCapabilities, ConnectionFailedError } from '@libp2p/interface';
|
|
26
|
+
import { WebSockets as WebSocketsMatcher, WebSocketsSecure } from '@multiformats/multiaddr-matcher';
|
|
26
27
|
import { multiaddrToUri as toUri } from '@multiformats/multiaddr-to-uri';
|
|
27
|
-
import {
|
|
28
|
-
import pDefer from 'p-defer';
|
|
28
|
+
import { pEvent } from 'p-event';
|
|
29
29
|
import { CustomProgressEvent } from 'progress-events';
|
|
30
|
-
import { raceSignal } from 'race-signal';
|
|
31
|
-
import * as filters from './filters.js';
|
|
32
30
|
import { createListener } from './listener.js';
|
|
33
|
-
import {
|
|
31
|
+
import { webSocketToMaConn } from './websocket-to-conn.js';
|
|
34
32
|
class WebSockets {
|
|
35
33
|
log;
|
|
36
34
|
init;
|
|
@@ -59,10 +57,14 @@ class WebSockets {
|
|
|
59
57
|
async dial(ma, options) {
|
|
60
58
|
this.log('dialing %s', ma);
|
|
61
59
|
options = options ?? {};
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
metrics: this.metrics?.dialerEvents
|
|
60
|
+
const maConn = webSocketToMaConn({
|
|
61
|
+
websocket: await this._connect(ma, options),
|
|
62
|
+
remoteAddr: ma,
|
|
63
|
+
metrics: this.metrics?.dialerEvents,
|
|
64
|
+
direction: 'outbound',
|
|
65
|
+
log: this.components.logger.forComponent('libp2p:websockets:connection'),
|
|
66
|
+
maxBufferedAmount: this.init.maxBufferedAmount,
|
|
67
|
+
bufferedAmountPollInterval: this.init.bufferedAmountPollInterval
|
|
66
68
|
});
|
|
67
69
|
this.log('new outbound connection %s', maConn.remoteAddr);
|
|
68
70
|
const conn = await options.upgrader.upgradeOutbound(maConn, options);
|
|
@@ -71,36 +73,31 @@ class WebSockets {
|
|
|
71
73
|
}
|
|
72
74
|
async _connect(ma, options) {
|
|
73
75
|
options?.signal?.throwIfAborted();
|
|
74
|
-
const
|
|
75
|
-
this.log('
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
rawSocket.socket.addEventListener('error', () => {
|
|
79
|
-
// the WebSocket.ErrorEvent type doesn't actually give us any useful
|
|
80
|
-
// information about what happened
|
|
81
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/error_event
|
|
82
|
-
const err = new ConnectionFailedError(`Could not connect to ${ma.toString()}`);
|
|
83
|
-
this.log.error('connection error:', err);
|
|
84
|
-
this.metrics?.dialerEvents.increment({ error: true });
|
|
85
|
-
errorPromise.reject(err);
|
|
86
|
-
});
|
|
76
|
+
const uri = toUri(ma);
|
|
77
|
+
this.log('create websocket connection to %s', uri);
|
|
78
|
+
const websocket = new WebSocket(uri);
|
|
79
|
+
websocket.binaryType = 'arraybuffer';
|
|
87
80
|
try {
|
|
88
81
|
options.onProgress?.(new CustomProgressEvent('websockets:open-connection'));
|
|
89
|
-
await
|
|
82
|
+
await pEvent(websocket, 'open', options);
|
|
90
83
|
}
|
|
91
84
|
catch (err) {
|
|
92
85
|
if (options.signal?.aborted) {
|
|
93
86
|
this.metrics?.dialerEvents.increment({ abort: true });
|
|
87
|
+
throw new ConnectionFailedError(`Could not connect to ${uri}`);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
this.metrics?.dialerEvents.increment({ error: true });
|
|
94
91
|
}
|
|
95
|
-
|
|
96
|
-
.
|
|
97
|
-
|
|
98
|
-
}
|
|
92
|
+
try {
|
|
93
|
+
websocket.close();
|
|
94
|
+
}
|
|
95
|
+
catch { }
|
|
99
96
|
throw err;
|
|
100
97
|
}
|
|
101
98
|
this.log('connected %s', ma);
|
|
102
99
|
this.metrics?.dialerEvents.increment({ connect: true });
|
|
103
|
-
return
|
|
100
|
+
return websocket;
|
|
104
101
|
}
|
|
105
102
|
/**
|
|
106
103
|
* Creates a WebSockets listener. The provided `handler` function will be called
|
|
@@ -117,21 +114,9 @@ class WebSockets {
|
|
|
117
114
|
...options
|
|
118
115
|
});
|
|
119
116
|
}
|
|
120
|
-
/**
|
|
121
|
-
* Takes a list of `Multiaddr`s and returns only valid WebSockets addresses.
|
|
122
|
-
* By default, in a browser environment only DNS+WSS multiaddr is accepted,
|
|
123
|
-
* while in a Node.js environment DNS+{WS, WSS} multiaddrs are accepted.
|
|
124
|
-
*/
|
|
125
117
|
listenFilter(multiaddrs) {
|
|
126
|
-
multiaddrs
|
|
127
|
-
if (this.init?.filter != null) {
|
|
128
|
-
return this.init?.filter(multiaddrs);
|
|
129
|
-
}
|
|
130
|
-
return filters.all(multiaddrs);
|
|
118
|
+
return multiaddrs.filter(ma => WebSocketsMatcher.exactMatch(ma) || WebSocketsSecure.exactMatch(ma));
|
|
131
119
|
}
|
|
132
|
-
/**
|
|
133
|
-
* Filter check for all Multiaddrs that this transport can dial
|
|
134
|
-
*/
|
|
135
120
|
dialFilter(multiaddrs) {
|
|
136
121
|
return this.listenFilter(multiaddrs);
|
|
137
122
|
}
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC/F,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/listener.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export interface WebSocketListenerInit extends CreateListenerOptions {
|
|
|
19
19
|
key?: string;
|
|
20
20
|
http?: http.ServerOptions;
|
|
21
21
|
https?: http.ServerOptions;
|
|
22
|
+
maxBufferedAmount?: number;
|
|
23
|
+
bufferedAmountPollInterval?: number;
|
|
22
24
|
}
|
|
23
25
|
export interface WebSocketListenerMetrics {
|
|
24
26
|
status?: MetricGroup;
|
|
@@ -26,8 +28,8 @@ export interface WebSocketListenerMetrics {
|
|
|
26
28
|
events?: CounterGroup;
|
|
27
29
|
}
|
|
28
30
|
export declare class WebSocketListener extends TypedEventEmitter<ListenerEvents> implements Listener {
|
|
31
|
+
private components;
|
|
29
32
|
private readonly log;
|
|
30
|
-
private readonly logger;
|
|
31
33
|
private readonly server;
|
|
32
34
|
private readonly wsServer;
|
|
33
35
|
private readonly metrics;
|
|
@@ -40,6 +42,8 @@ export declare class WebSocketListener extends TypedEventEmitter<ListenerEvents>
|
|
|
40
42
|
private https?;
|
|
41
43
|
private addr?;
|
|
42
44
|
private listeningMultiaddr?;
|
|
45
|
+
private maxBufferedAmount?;
|
|
46
|
+
private bufferedAmountPollInterval?;
|
|
43
47
|
constructor(components: WebSocketListenerComponents, init: WebSocketListenerInit);
|
|
44
48
|
onSocketConnection(socket: net.Socket): Promise<void>;
|
|
45
49
|
onWsServerConnection(socket: ws.WebSocket, req: http.IncomingMessage): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,GAAG,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"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"}
|
package/dist/src/listener.js
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import http from 'node:http';
|
|
2
2
|
import https from 'node:https';
|
|
3
3
|
import net from 'node:net';
|
|
4
|
-
import { getThinWaistAddresses } from '@libp2p/utils
|
|
5
|
-
import { ipPortToMultiaddr as toMultiaddr } from '@libp2p/utils/ip-port-to-multiaddr';
|
|
4
|
+
import { getNetConfig, getThinWaistAddresses, ipPortToMultiaddr as toMultiaddr } from '@libp2p/utils';
|
|
6
5
|
import { multiaddr } from '@multiformats/multiaddr';
|
|
7
6
|
import { WebSockets, WebSocketsSecure } from '@multiformats/multiaddr-matcher';
|
|
8
|
-
import duplex from 'it-ws/duplex';
|
|
9
7
|
import { TypedEventEmitter, setMaxListeners } from 'main-event';
|
|
10
8
|
import { pEvent } from 'p-event';
|
|
11
9
|
import * as ws from 'ws';
|
|
12
|
-
import {
|
|
10
|
+
import { toWebSocket } from "./utils.js";
|
|
11
|
+
import { webSocketToMaConn } from './websocket-to-conn.js';
|
|
13
12
|
export class WebSocketListener extends TypedEventEmitter {
|
|
13
|
+
components;
|
|
14
14
|
log;
|
|
15
|
-
logger;
|
|
16
15
|
server;
|
|
17
16
|
wsServer;
|
|
18
17
|
metrics;
|
|
@@ -25,13 +24,17 @@ export class WebSocketListener extends TypedEventEmitter {
|
|
|
25
24
|
https;
|
|
26
25
|
addr;
|
|
27
26
|
listeningMultiaddr;
|
|
27
|
+
maxBufferedAmount;
|
|
28
|
+
bufferedAmountPollInterval;
|
|
28
29
|
constructor(components, init) {
|
|
29
30
|
super();
|
|
31
|
+
this.components = components;
|
|
30
32
|
this.log = components.logger.forComponent('libp2p:websockets:listener');
|
|
31
|
-
this.logger = components.logger;
|
|
32
33
|
this.upgrader = init.upgrader;
|
|
33
34
|
this.httpOptions = init.http;
|
|
34
35
|
this.httpsOptions = init.https ?? init.http;
|
|
36
|
+
this.maxBufferedAmount = init.maxBufferedAmount;
|
|
37
|
+
this.bufferedAmountPollInterval = init.bufferedAmountPollInterval;
|
|
35
38
|
this.sockets = new Set();
|
|
36
39
|
this.shutdownController = new AbortController();
|
|
37
40
|
setMaxListeners(Infinity, this.shutdownController.signal);
|
|
@@ -120,6 +123,7 @@ export class WebSocketListener extends TypedEventEmitter {
|
|
|
120
123
|
}
|
|
121
124
|
onWsServerConnection(socket, req) {
|
|
122
125
|
let addr;
|
|
126
|
+
socket.binaryType = 'arraybuffer';
|
|
123
127
|
try {
|
|
124
128
|
addr = this.server.address();
|
|
125
129
|
if (typeof addr === 'string') {
|
|
@@ -135,20 +139,17 @@ export class WebSocketListener extends TypedEventEmitter {
|
|
|
135
139
|
socket.close();
|
|
136
140
|
return;
|
|
137
141
|
}
|
|
138
|
-
const stream = {
|
|
139
|
-
...duplex(socket, {
|
|
140
|
-
remoteAddress: req.socket.remoteAddress ?? '0.0.0.0',
|
|
141
|
-
remotePort: req.socket.remotePort ?? 0
|
|
142
|
-
}),
|
|
143
|
-
localAddress: addr.address,
|
|
144
|
-
localPort: addr.port
|
|
145
|
-
};
|
|
146
142
|
let maConn;
|
|
147
143
|
try {
|
|
148
|
-
maConn =
|
|
149
|
-
|
|
144
|
+
maConn = webSocketToMaConn({
|
|
145
|
+
websocket: toWebSocket(socket),
|
|
146
|
+
remoteAddr: toMultiaddr(req.socket.remoteAddress ?? '0.0.0.0', req.socket.remotePort ?? 0).encapsulate('/ws'),
|
|
150
147
|
metrics: this.metrics?.events,
|
|
151
|
-
metricPrefix: `${this.addr}
|
|
148
|
+
metricPrefix: `${this.addr} `,
|
|
149
|
+
direction: 'inbound',
|
|
150
|
+
log: this.components.logger.forComponent('libp2p:websockets:connection'),
|
|
151
|
+
maxBufferedAmount: this.maxBufferedAmount,
|
|
152
|
+
bufferedAmountPollInterval: this.bufferedAmountPollInterval
|
|
152
153
|
});
|
|
153
154
|
}
|
|
154
155
|
catch (err) {
|
|
@@ -164,11 +165,7 @@ export class WebSocketListener extends TypedEventEmitter {
|
|
|
164
165
|
.catch(async (err) => {
|
|
165
166
|
this.log.error('inbound connection failed to upgrade - %e', err);
|
|
166
167
|
this.metrics.errors?.increment({ [`${this.addr} inbound_upgrade`]: true });
|
|
167
|
-
|
|
168
|
-
.catch(err => {
|
|
169
|
-
this.log.error('inbound connection failed to close after upgrade failed', err);
|
|
170
|
-
this.metrics.errors?.increment({ [`${this.addr} inbound_closing_failed`]: true });
|
|
171
|
-
});
|
|
168
|
+
maConn.close();
|
|
172
169
|
});
|
|
173
170
|
}
|
|
174
171
|
onUpgrade(req, socket, head) {
|
|
@@ -188,11 +185,11 @@ export class WebSocketListener extends TypedEventEmitter {
|
|
|
188
185
|
this.https.addListener('upgrade', this.onUpgrade.bind(this));
|
|
189
186
|
this.https.addListener('tlsClientError', this.onTLSClientError.bind(this));
|
|
190
187
|
}
|
|
191
|
-
const
|
|
192
|
-
this.addr = `${
|
|
188
|
+
const config = getNetConfig(ma);
|
|
189
|
+
this.addr = `${config.host}:${config.port}`;
|
|
193
190
|
this.server.listen({
|
|
194
|
-
...
|
|
195
|
-
ipv6Only:
|
|
191
|
+
...config,
|
|
192
|
+
ipv6Only: config.type === 'ip6'
|
|
196
193
|
});
|
|
197
194
|
await new Promise((resolve, reject) => {
|
|
198
195
|
const onListening = () => {
|
|
@@ -259,12 +256,17 @@ export class WebSocketListener extends TypedEventEmitter {
|
|
|
259
256
|
});
|
|
260
257
|
// abort and in-flight connection upgrades
|
|
261
258
|
this.shutdownController.abort();
|
|
262
|
-
|
|
259
|
+
const events = [
|
|
263
260
|
pEvent(this.server, 'close'),
|
|
264
|
-
this.http == null ? null : pEvent(this.http, 'close'),
|
|
265
|
-
this.https == null ? null : pEvent(this.https, 'close'),
|
|
266
261
|
pEvent(this.wsServer, 'close')
|
|
267
|
-
]
|
|
262
|
+
];
|
|
263
|
+
if (this.http != null) {
|
|
264
|
+
events.push(pEvent(this.http, 'close'));
|
|
265
|
+
}
|
|
266
|
+
if (this.https != null) {
|
|
267
|
+
events.push(pEvent(this.https, 'close'));
|
|
268
|
+
}
|
|
269
|
+
await Promise.all(events);
|
|
268
270
|
this.safeDispatchEvent('close');
|
|
269
271
|
}
|
|
270
272
|
getAddrs() {
|
package/dist/src/listener.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WebSocket as WSSWebSocket } from 'ws';
|
|
2
|
+
/**
|
|
3
|
+
* Adds properties/methods to a `WebSocket` instance from the `ws` module to be
|
|
4
|
+
* compatible with the `globalThis.WebSocket` API
|
|
5
|
+
*/
|
|
6
|
+
export declare function toWebSocket(ws: WSSWebSocket): WebSocket;
|
|
7
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,IAAI,CAAA;AAEnD;;;GAGG;AACH,wBAAgB,WAAW,CAAE,EAAE,EAAE,YAAY,GAAG,SAAS,CA6BxD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adds properties/methods to a `WebSocket` instance from the `ws` module to be
|
|
3
|
+
* compatible with the `globalThis.WebSocket` API
|
|
4
|
+
*/
|
|
5
|
+
export function toWebSocket(ws) {
|
|
6
|
+
Object.defineProperty(ws, 'url', {
|
|
7
|
+
value: '',
|
|
8
|
+
writable: false
|
|
9
|
+
});
|
|
10
|
+
// @ts-expect-error not a WS/WebSocket method
|
|
11
|
+
ws.dispatchEvent = (evt) => {
|
|
12
|
+
if (evt.type === 'close') {
|
|
13
|
+
ws.emit('close');
|
|
14
|
+
}
|
|
15
|
+
if (evt.type === 'open') {
|
|
16
|
+
ws.emit('open');
|
|
17
|
+
}
|
|
18
|
+
if (evt.type === 'message') {
|
|
19
|
+
const m = evt;
|
|
20
|
+
ws.emit('data', m.data);
|
|
21
|
+
}
|
|
22
|
+
if (evt.type === 'error') {
|
|
23
|
+
ws.emit('error', new Error('An error occurred'));
|
|
24
|
+
}
|
|
25
|
+
ws.emit(evt.type, evt);
|
|
26
|
+
};
|
|
27
|
+
// @ts-expect-error ws is now WebSocket
|
|
28
|
+
return ws;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAE,EAAgB;IAC3C,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE;QAC/B,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,6CAA6C;IAC7C,EAAE,CAAC,aAAa,GAAG,CAAC,GAAU,EAAE,EAAE;QAChC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACzB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClB,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACjB,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,GAAmB,CAAA;YAC7B,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACzB,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAClD,CAAC;QACD,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACxB,CAAC,CAAA;IAED,uCAAuC;IACvC,OAAO,EAAE,CAAA;AACX,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MultiaddrConnection } from '@libp2p/interface';
|
|
2
|
+
import type { AbstractMultiaddrConnectionInit } from '@libp2p/utils';
|
|
3
|
+
export interface WebSocketMultiaddrConnectionInit extends Omit<AbstractMultiaddrConnectionInit, 'name'> {
|
|
4
|
+
websocket: WebSocket;
|
|
5
|
+
maxBufferedAmount?: number;
|
|
6
|
+
bufferedAmountPollInterval?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function webSocketToMaConn(init: WebSocketMultiaddrConnectionInit): MultiaddrConnection;
|
|
9
|
+
//# sourceMappingURL=websocket-to-conn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-to-conn.d.ts","sourceRoot":"","sources":["../../src/websocket-to-conn.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC1E,OAAO,KAAK,EAAE,+BAA+B,EAA6B,MAAM,eAAe,CAAA;AAK/F,MAAM,WAAW,gCAAiC,SAAQ,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC;IACrG,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,0BAA0B,CAAC,EAAE,MAAM,CAAA;CACpC;AA4FD,wBAAgB,iBAAiB,CAAE,IAAI,EAAE,gCAAgC,GAAG,mBAAmB,CAE9F"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { AbstractMultiaddrConnection, repeatingTask } from '@libp2p/utils';
|
|
2
|
+
import { Uint8ArrayList } from 'uint8arraylist';
|
|
3
|
+
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
4
|
+
const DEFAULT_MAX_BUFFERED_AMOUNT = 1024 * 1024 * 4;
|
|
5
|
+
const DEFAULT_BUFFERED_AMOUNT_POLL_INTERVAL = 10;
|
|
6
|
+
class WebSocketMultiaddrConnection extends AbstractMultiaddrConnection {
|
|
7
|
+
websocket;
|
|
8
|
+
maxBufferedAmount;
|
|
9
|
+
checkBufferedAmountTask;
|
|
10
|
+
constructor(init) {
|
|
11
|
+
super(init);
|
|
12
|
+
this.websocket = init.websocket;
|
|
13
|
+
this.maxBufferedAmount = init.maxBufferedAmount ?? DEFAULT_MAX_BUFFERED_AMOUNT;
|
|
14
|
+
this.checkBufferedAmountTask = repeatingTask(this.checkBufferedAmount.bind(this), init.bufferedAmountPollInterval ?? DEFAULT_BUFFERED_AMOUNT_POLL_INTERVAL);
|
|
15
|
+
this.websocket.addEventListener('close', (evt) => {
|
|
16
|
+
this.log('closed - code %d, reason "%s", wasClean %s', evt.code, evt.reason, evt.wasClean);
|
|
17
|
+
this.checkBufferedAmountTask.stop();
|
|
18
|
+
if (!evt.wasClean) {
|
|
19
|
+
this.onRemoteReset();
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
this.onTransportClosed();
|
|
23
|
+
}, { once: true });
|
|
24
|
+
this.websocket.addEventListener('message', (evt) => {
|
|
25
|
+
try {
|
|
26
|
+
let buf;
|
|
27
|
+
if (typeof evt.data === 'string') {
|
|
28
|
+
buf = uint8ArrayFromString(evt.data);
|
|
29
|
+
}
|
|
30
|
+
else if (evt.data instanceof ArrayBuffer) {
|
|
31
|
+
buf = new Uint8Array(evt.data, 0, evt.data.byteLength);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.abort(new Error('Incorrect binary type'));
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
this.onData(buf);
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
this.log.error('error receiving data - %e', err);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
sendData(data) {
|
|
45
|
+
for (const buf of data) {
|
|
46
|
+
this.websocket.send(buf);
|
|
47
|
+
}
|
|
48
|
+
const canSendMore = this.websocket.bufferedAmount < this.maxBufferedAmount;
|
|
49
|
+
if (!canSendMore) {
|
|
50
|
+
this.checkBufferedAmountTask.start();
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
sentBytes: data.byteLength,
|
|
54
|
+
canSendMore
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
sendReset() {
|
|
58
|
+
this.websocket.close(1006); // abnormal closure
|
|
59
|
+
}
|
|
60
|
+
async sendClose(options) {
|
|
61
|
+
this.websocket.close();
|
|
62
|
+
options?.signal?.throwIfAborted();
|
|
63
|
+
}
|
|
64
|
+
sendPause() {
|
|
65
|
+
// read backpressure is not supported
|
|
66
|
+
}
|
|
67
|
+
sendResume() {
|
|
68
|
+
// read backpressure is not supported
|
|
69
|
+
}
|
|
70
|
+
checkBufferedAmount() {
|
|
71
|
+
this.log('buffered amount now %d', this.websocket.bufferedAmount);
|
|
72
|
+
if (this.websocket.bufferedAmount === 0) {
|
|
73
|
+
this.checkBufferedAmountTask.stop();
|
|
74
|
+
this.safeDispatchEvent('drain');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Convert a stream into a MultiaddrConnection
|
|
79
|
+
// https://github.com/libp2p/interface-transport#multiaddrconnection
|
|
80
|
+
export function webSocketToMaConn(init) {
|
|
81
|
+
return new WebSocketMultiaddrConnection(init);
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=websocket-to-conn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-to-conn.js","sourceRoot":"","sources":["../../src/websocket-to-conn.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/websockets",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.0.0-049bfa0fa",
|
|
4
4
|
"description": "JavaScript implementation of the WebSockets module that libp2p uses and that implements the interface-transport spec",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-websockets#readme",
|
|
@@ -67,27 +67,28 @@
|
|
|
67
67
|
"test:electron-main": "aegir test -t electron-main -f ./dist/test/node.js --cov"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@libp2p/interface": "
|
|
71
|
-
"@libp2p/utils": "
|
|
72
|
-
"@multiformats/multiaddr": "^
|
|
73
|
-
"@multiformats/multiaddr-matcher": "^
|
|
74
|
-
"@multiformats/multiaddr-to-uri": "^
|
|
70
|
+
"@libp2p/interface": "3.0.0-049bfa0fa",
|
|
71
|
+
"@libp2p/utils": "7.0.0-049bfa0fa",
|
|
72
|
+
"@multiformats/multiaddr": "^13.0.1",
|
|
73
|
+
"@multiformats/multiaddr-matcher": "^3.0.1",
|
|
74
|
+
"@multiformats/multiaddr-to-uri": "^12.0.0",
|
|
75
75
|
"@types/ws": "^8.18.1",
|
|
76
76
|
"it-ws": "^6.1.5",
|
|
77
77
|
"main-event": "^1.0.1",
|
|
78
|
-
"p-defer": "^4.0.1",
|
|
79
78
|
"p-event": "^6.0.1",
|
|
80
79
|
"progress-events": "^1.0.1",
|
|
81
|
-
"
|
|
82
|
-
"
|
|
80
|
+
"uint8arraylist": "^2.4.8",
|
|
81
|
+
"uint8arrays": "^5.1.0",
|
|
82
|
+
"ws": "^8.18.3"
|
|
83
83
|
},
|
|
84
84
|
"devDependencies": {
|
|
85
|
-
"@libp2p/logger": "
|
|
86
|
-
"aegir": "^47.0.
|
|
85
|
+
"@libp2p/logger": "6.0.0-049bfa0fa",
|
|
86
|
+
"aegir": "^47.0.22",
|
|
87
87
|
"is-loopback-addr": "^2.0.2",
|
|
88
88
|
"p-wait-for": "^5.0.2",
|
|
89
|
-
"sinon": "^
|
|
90
|
-
"sinon-ts": "^2.0.0"
|
|
89
|
+
"sinon": "^21.0.0",
|
|
90
|
+
"sinon-ts": "^2.0.0",
|
|
91
|
+
"undici": "^7.15.0"
|
|
91
92
|
},
|
|
92
93
|
"browser": {
|
|
93
94
|
"./dist/src/listener.js": "./dist/src/listener.browser.js"
|