@edryslabs/genericprovider 1.0.4 → 1.5.2
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/README.md +129 -5
- package/dist/index.d.ts +903 -60
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2723 -428
- package/dist/index.js.map +1 -1
- package/dist/lib.d.ts +1 -0
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +3 -0
- package/dist/lib.js.map +1 -1
- package/dist/providers/ably/index.d.ts +203 -0
- package/dist/providers/ably/index.d.ts.map +1 -0
- package/dist/providers/ably/index.js +561 -0
- package/dist/providers/ably/index.js.map +1 -0
- package/dist/providers/chunking.d.ts +26 -0
- package/dist/providers/chunking.d.ts.map +1 -0
- package/dist/providers/chunking.js +52 -0
- package/dist/providers/chunking.js.map +1 -0
- package/dist/providers/dummy/index.d.ts +138 -2
- package/dist/providers/dummy/index.d.ts.map +1 -1
- package/dist/providers/dummy/index.js +266 -4
- package/dist/providers/dummy/index.js.map +1 -1
- package/dist/providers/gun/index.d.ts +11 -4
- package/dist/providers/gun/index.d.ts.map +1 -1
- package/dist/providers/gun/index.js +104 -22
- package/dist/providers/gun/index.js.map +1 -1
- package/dist/providers/indexeddb/index.d.ts +44 -20
- package/dist/providers/indexeddb/index.d.ts.map +1 -1
- package/dist/providers/indexeddb/index.js +85 -71
- package/dist/providers/indexeddb/index.js.map +1 -1
- package/dist/providers/matrix/index.d.ts +6 -1
- package/dist/providers/matrix/index.d.ts.map +1 -1
- package/dist/providers/matrix/index.js +44 -6
- package/dist/providers/matrix/index.js.map +1 -1
- package/dist/providers/nostr/index.d.ts +69 -5
- package/dist/providers/nostr/index.d.ts.map +1 -1
- package/dist/providers/nostr/index.js +204 -36
- package/dist/providers/nostr/index.js.map +1 -1
- package/dist/providers/peerjs/index.d.ts +11 -1
- package/dist/providers/peerjs/index.d.ts.map +1 -1
- package/dist/providers/peerjs/index.js +32 -2
- package/dist/providers/peerjs/index.js.map +1 -1
- package/dist/providers/pubnub/index.d.ts +35 -1
- package/dist/providers/pubnub/index.d.ts.map +1 -1
- package/dist/providers/pubnub/index.js +56 -35
- package/dist/providers/pubnub/index.js.map +1 -1
- package/dist/providers/simple-peer/index.d.ts +10 -15
- package/dist/providers/simple-peer/index.d.ts.map +1 -1
- package/dist/providers/simple-peer/index.js +81 -109
- package/dist/providers/simple-peer/index.js.map +1 -1
- package/dist/providers/supabase/index.d.ts +43 -1
- package/dist/providers/supabase/index.d.ts.map +1 -1
- package/dist/providers/supabase/index.js +211 -18
- package/dist/providers/supabase/index.js.map +1 -1
- package/dist/providers/trystero/index.d.ts +19 -1
- package/dist/providers/trystero/index.d.ts.map +1 -1
- package/dist/providers/trystero/index.js +37 -2
- package/dist/providers/trystero/index.js.map +1 -1
- package/dist/providers/websocket/index.d.ts +9 -1
- package/dist/providers/websocket/index.d.ts.map +1 -1
- package/dist/providers/websocket/index.js +7 -1
- package/dist/providers/websocket/index.js.map +1 -1
- package/dist/transport.d.ts +69 -16
- package/dist/transport.d.ts.map +1 -1
- package/package.json +35 -24
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
import * as Y from 'yjs';
|
|
2
|
+
import * as encoding from 'lib0/encoding';
|
|
3
|
+
import { splitChunks, isChunk, ChunkAssembler } from '../chunking';
|
|
4
|
+
// GenericProvider's frame types this transport looks at (see src/index.ts).
|
|
5
|
+
const MESSAGE_AWARENESS = 1;
|
|
6
|
+
const MESSAGE_SYNC_PUSH = 6;
|
|
7
|
+
// Realtime caps a broadcast at 256 KB on the free tier (3 MB above). Below
|
|
8
|
+
// this the raw bytes go out as a binary payload (supabase-js >= 2.91.0 on
|
|
9
|
+
// EVERY peer - an older client drops binary broadcasts silently); above
|
|
10
|
+
// it, base64 chunks in the JSON path.
|
|
11
|
+
const MAX_BINARY_BYTES = 200000;
|
|
12
|
+
const MAX_CHUNK_CHARS = 200000;
|
|
1
13
|
// ---------------------------------------------------------------------------
|
|
2
14
|
// CRC32 helpers (GenericProvider wraps messages with CRC32 header)
|
|
3
15
|
// ---------------------------------------------------------------------------
|
|
@@ -77,10 +89,30 @@ export class SupabaseTransport {
|
|
|
77
89
|
this.options = options;
|
|
78
90
|
this.supabase = null;
|
|
79
91
|
this.channel = null;
|
|
92
|
+
// No preferredCompressMinBytes: send() strips the CRC32 header, which
|
|
93
|
+
// assumes the uncompressed frame layout (see compressionThresholdBytes).
|
|
80
94
|
this.config = null;
|
|
95
|
+
// Our id on the channel: the presence key we track under, and the suffix
|
|
96
|
+
// of the broadcast event name (`m:<id>`) every message goes out with, so
|
|
97
|
+
// receivers get it as `from`. Round 5, item 2: with a leave signal
|
|
98
|
+
// GenericProvider drops a departed peer's presence at once and stretches
|
|
99
|
+
// the awareness lease to 5 minutes - the 15 s renewal broadcasts, 80 % of
|
|
100
|
+
// an idle room's messages, stop. Same-version rule: an older peer listens
|
|
101
|
+
// for event 'message' only and never sees these frames.
|
|
102
|
+
this.peerId = Math.random().toString(36).slice(2, 10);
|
|
103
|
+
this.chunks = new ChunkAssembler();
|
|
81
104
|
this._isConnected = false;
|
|
82
105
|
this.debug = false;
|
|
83
106
|
this.roomId = '';
|
|
107
|
+
// Persistence (see SupabaseConfig.persistent)
|
|
108
|
+
this.persistentMode = false;
|
|
109
|
+
this.doc = null;
|
|
110
|
+
this.tableName = 'yjs_documents';
|
|
111
|
+
this.persistDebounceMs = 2000;
|
|
112
|
+
this.isWritingToDb = false;
|
|
113
|
+
this.savePending = false;
|
|
114
|
+
// State loaded from the table before GenericProvider registered onMessage
|
|
115
|
+
this.pendingLoad = null;
|
|
84
116
|
}
|
|
85
117
|
get isConnected() {
|
|
86
118
|
return this._isConnected;
|
|
@@ -94,6 +126,13 @@ export class SupabaseTransport {
|
|
|
94
126
|
if (!config.room) {
|
|
95
127
|
throw new Error('SupabaseTransport: room name is required');
|
|
96
128
|
}
|
|
129
|
+
this.persistentMode = config.persistent ?? false;
|
|
130
|
+
this.doc = config.doc ?? null;
|
|
131
|
+
this.tableName = config.tableName ?? 'yjs_documents';
|
|
132
|
+
this.persistDebounceMs = config.persistDebounceMs ?? 2000;
|
|
133
|
+
if (this.persistentMode && !this.doc) {
|
|
134
|
+
throw new Error('SupabaseTransport: a Y.Doc must be provided via config.doc when persistent is true');
|
|
135
|
+
}
|
|
97
136
|
// Create Supabase client using the injected createClient function
|
|
98
137
|
this.supabase = this.options.createClient(config.supabaseUrl, config.supabaseKey);
|
|
99
138
|
// Generate room ID (with optional password hashing)
|
|
@@ -101,11 +140,30 @@ export class SupabaseTransport {
|
|
|
101
140
|
? `${config.room}-${await hashPassword(config.password)}`
|
|
102
141
|
: config.room;
|
|
103
142
|
this.log('Connecting to room:', this.roomId);
|
|
104
|
-
// Create and subscribe to channel
|
|
105
|
-
this.channel = this.supabase.channel(this.roomId
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
143
|
+
// Create and subscribe to channel; our presence key is our peer id.
|
|
144
|
+
this.channel = this.supabase.channel(this.roomId, {
|
|
145
|
+
config: { presence: { key: this.peerId } },
|
|
146
|
+
});
|
|
147
|
+
// Listen for messages: `m:<peerId>` from a current peer (the id becomes
|
|
148
|
+
// `from`), 'message' from an older one.
|
|
149
|
+
this.channel.on('broadcast', { event: '*' }, (msg) => {
|
|
150
|
+
const event = typeof msg?.event === 'string' ? msg.event : '';
|
|
151
|
+
const from = event.startsWith('m:') ? event.slice(2) : undefined;
|
|
152
|
+
if (from === this.peerId)
|
|
153
|
+
return;
|
|
154
|
+
if (from === undefined && event !== 'message')
|
|
155
|
+
return;
|
|
156
|
+
this.handleMessage(msg.payload, from);
|
|
157
|
+
});
|
|
158
|
+
// Presence: a peer's channel went away (clean unsubscribe, closed tab,
|
|
159
|
+
// or the server's timeout after a dead connection). Delivered to every
|
|
160
|
+
// subscriber, so GenericProvider handles it without a broadcast burst.
|
|
161
|
+
this.channel.on('presence', { event: 'leave' }, (event) => {
|
|
162
|
+
const key = event?.key;
|
|
163
|
+
if (typeof key === 'string' && key !== this.peerId) {
|
|
164
|
+
this.log('Peer left:', key);
|
|
165
|
+
this._peerDisconnectCallback?.(key);
|
|
166
|
+
}
|
|
109
167
|
});
|
|
110
168
|
// Subscribe to channel
|
|
111
169
|
await new Promise((resolve, reject) => {
|
|
@@ -117,6 +175,9 @@ export class SupabaseTransport {
|
|
|
117
175
|
if (status === 'SUBSCRIBED') {
|
|
118
176
|
this._isConnected = true;
|
|
119
177
|
this.log('Connected to Supabase channel');
|
|
178
|
+
// Join the presence set under our key; the promise resolves with
|
|
179
|
+
// 'ok' or an error status, neither blocks the connect.
|
|
180
|
+
Promise.resolve(this.channel?.track({ joined_at: Date.now() })).catch((error) => this.log('presence track failed:', error));
|
|
120
181
|
resolve();
|
|
121
182
|
}
|
|
122
183
|
else if (status === 'CHANNEL_ERROR' || status === 'TIMED_OUT') {
|
|
@@ -124,9 +185,23 @@ export class SupabaseTransport {
|
|
|
124
185
|
}
|
|
125
186
|
});
|
|
126
187
|
});
|
|
188
|
+
if (this.persistentMode)
|
|
189
|
+
await this.loadFromDatabase();
|
|
127
190
|
}
|
|
128
191
|
async disconnect() {
|
|
129
192
|
this.log('Disconnecting...');
|
|
193
|
+
if (this.persistTimer) {
|
|
194
|
+
clearTimeout(this.persistTimer);
|
|
195
|
+
this.persistTimer = undefined;
|
|
196
|
+
}
|
|
197
|
+
if (this.persistentMode && this.doc) {
|
|
198
|
+
try {
|
|
199
|
+
await this.saveToDatabase();
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
this.log('Error flushing to database on disconnect:', error);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
130
205
|
if (this.channel) {
|
|
131
206
|
await this.channel.unsubscribe();
|
|
132
207
|
this.channel = null;
|
|
@@ -135,6 +210,7 @@ export class SupabaseTransport {
|
|
|
135
210
|
this.supabase = null;
|
|
136
211
|
this.config = null;
|
|
137
212
|
this.messageCallback = undefined;
|
|
213
|
+
this.pendingLoad = null;
|
|
138
214
|
}
|
|
139
215
|
send(data) {
|
|
140
216
|
if (!this._isConnected || !this.channel) {
|
|
@@ -143,35 +219,152 @@ export class SupabaseTransport {
|
|
|
143
219
|
}
|
|
144
220
|
// Strip CRC32 header before sending
|
|
145
221
|
const payload = stripCRC32Header(data);
|
|
146
|
-
//
|
|
222
|
+
// Only document updates schedule a database write, not presence
|
|
223
|
+
if (this.persistentMode && payload[0] !== MESSAGE_AWARENESS) {
|
|
224
|
+
this.queuePersist();
|
|
225
|
+
}
|
|
226
|
+
if (payload.length <= MAX_BINARY_BYTES) {
|
|
227
|
+
// Binary broadcast: no base64 (33 % smaller on the wire)
|
|
228
|
+
this.channel.send({
|
|
229
|
+
type: 'broadcast',
|
|
230
|
+
event: 'm:' + this.peerId,
|
|
231
|
+
payload: payload.buffer.slice(payload.byteOffset, payload.byteOffset + payload.byteLength),
|
|
232
|
+
});
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
// Too large for one broadcast: base64 chunks through the JSON path
|
|
147
236
|
const base64 = this.uint8ArrayToBase64(payload);
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
event: 'message',
|
|
152
|
-
payload: base64,
|
|
153
|
-
});
|
|
237
|
+
for (const chunk of splitChunks(base64, MAX_CHUNK_CHARS)) {
|
|
238
|
+
this.channel.send({ type: 'broadcast', event: 'm:' + this.peerId, payload: chunk });
|
|
239
|
+
}
|
|
154
240
|
}
|
|
155
241
|
onMessage(callback) {
|
|
156
242
|
this.messageCallback = callback;
|
|
243
|
+
// State loaded from the table before GenericProvider registered this
|
|
244
|
+
// callback (connect() resolves first): deliver it now, one microtask
|
|
245
|
+
// later so the provider has finished its own setup.
|
|
246
|
+
if (this.pendingLoad) {
|
|
247
|
+
const data = this.pendingLoad;
|
|
248
|
+
this.pendingLoad = null;
|
|
249
|
+
Promise.resolve().then(() => callback(data));
|
|
250
|
+
}
|
|
157
251
|
return () => {
|
|
158
252
|
this.messageCallback = undefined;
|
|
159
253
|
};
|
|
160
254
|
}
|
|
255
|
+
/**
|
|
256
|
+
* Transport.onPeerDisconnect: Supabase presence 'leave' for the channel.
|
|
257
|
+
* Peer ids are presence keys, the same id `onMessage` passes as `from`.
|
|
258
|
+
*/
|
|
259
|
+
onPeerDisconnect(callback) {
|
|
260
|
+
this._peerDisconnectCallback = callback;
|
|
261
|
+
return () => {
|
|
262
|
+
this._peerDisconnectCallback = undefined;
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
// ---------------------------------------------------------------------------
|
|
266
|
+
// Persistence: one row per room, `content` = base64 of the full state
|
|
267
|
+
// ---------------------------------------------------------------------------
|
|
268
|
+
/**
|
|
269
|
+
* Deliver the stored state as a MESSAGE_SYNC_PUSH frame - the provider
|
|
270
|
+
* applies it like a peer's full-state push: no hash check, no `synced`
|
|
271
|
+
* flip (a stored copy says nothing about who is online).
|
|
272
|
+
*/
|
|
273
|
+
async loadFromDatabase() {
|
|
274
|
+
try {
|
|
275
|
+
const { data, error } = await this.supabase
|
|
276
|
+
.from(this.tableName)
|
|
277
|
+
.select('content')
|
|
278
|
+
.eq('id', this.roomId)
|
|
279
|
+
.maybeSingle();
|
|
280
|
+
if (error)
|
|
281
|
+
throw error;
|
|
282
|
+
if (!data?.content) {
|
|
283
|
+
this.log('No stored document for this room yet');
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
const update = this.base64ToUint8Array(data.content);
|
|
287
|
+
const enc = encoding.createEncoder();
|
|
288
|
+
encoding.writeVarUint(enc, MESSAGE_SYNC_PUSH);
|
|
289
|
+
encoding.writeVarUint8Array(enc, update);
|
|
290
|
+
const frame = addCRC32Header(encoding.toUint8Array(enc));
|
|
291
|
+
if (this.messageCallback)
|
|
292
|
+
this.messageCallback(frame);
|
|
293
|
+
else
|
|
294
|
+
this.pendingLoad = frame;
|
|
295
|
+
this.log('Loaded', update.length, 'bytes from the database');
|
|
296
|
+
}
|
|
297
|
+
catch (error) {
|
|
298
|
+
this.log('Error loading from database:', error?.message ?? error);
|
|
299
|
+
console.warn('SupabaseTransport: failed to load from database:', error);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
queuePersist() {
|
|
303
|
+
if (this.persistTimer)
|
|
304
|
+
clearTimeout(this.persistTimer);
|
|
305
|
+
this.persistTimer = setTimeout(() => this.saveToDatabase(), this.persistDebounceMs);
|
|
306
|
+
}
|
|
307
|
+
/** Upsert the full current state; a write that overlaps a change re-runs once. */
|
|
308
|
+
async saveToDatabase() {
|
|
309
|
+
if (!this.supabase || !this.persistentMode || !this.doc)
|
|
310
|
+
return;
|
|
311
|
+
if (this.isWritingToDb) {
|
|
312
|
+
this.savePending = true;
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
this.isWritingToDb = true;
|
|
316
|
+
this.savePending = false;
|
|
317
|
+
try {
|
|
318
|
+
const state = Y.encodeStateAsUpdate(this.doc);
|
|
319
|
+
const { error } = await this.supabase.from(this.tableName).upsert({
|
|
320
|
+
id: this.roomId,
|
|
321
|
+
content: this.uint8ArrayToBase64(state),
|
|
322
|
+
updated_at: new Date().toISOString(),
|
|
323
|
+
});
|
|
324
|
+
if (error)
|
|
325
|
+
throw error;
|
|
326
|
+
this.log('Saved', state.length, 'bytes to the database');
|
|
327
|
+
}
|
|
328
|
+
catch (error) {
|
|
329
|
+
this.log('Error saving to database:', error?.message ?? error);
|
|
330
|
+
console.warn('SupabaseTransport: failed to save to database, will retry:', error);
|
|
331
|
+
this.savePending = true;
|
|
332
|
+
}
|
|
333
|
+
finally {
|
|
334
|
+
this.isWritingToDb = false;
|
|
335
|
+
if (this.savePending)
|
|
336
|
+
setTimeout(() => this.saveToDatabase(), 1000);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
161
339
|
// ---------------------------------------------------------------------------
|
|
162
340
|
// Private methods
|
|
163
341
|
// ---------------------------------------------------------------------------
|
|
164
|
-
handleMessage(payload) {
|
|
342
|
+
handleMessage(payload, from) {
|
|
165
343
|
if (!this.messageCallback)
|
|
166
344
|
return;
|
|
167
345
|
try {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
346
|
+
let data;
|
|
347
|
+
if (payload instanceof ArrayBuffer) {
|
|
348
|
+
data = new Uint8Array(payload);
|
|
349
|
+
}
|
|
350
|
+
else if (ArrayBuffer.isView(payload)) {
|
|
351
|
+
data = new Uint8Array(payload.buffer, payload.byteOffset, payload.byteLength);
|
|
352
|
+
}
|
|
353
|
+
else if (typeof payload === 'string') {
|
|
354
|
+
data = this.base64ToUint8Array(payload); // an older sender
|
|
355
|
+
}
|
|
356
|
+
else if (isChunk(payload)) {
|
|
357
|
+
const whole = this.chunks.push(payload);
|
|
358
|
+
if (whole === null)
|
|
359
|
+
return;
|
|
360
|
+
data = this.base64ToUint8Array(whole);
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
172
365
|
// Add CRC32 header for GenericProvider
|
|
173
366
|
const wrapped = addCRC32Header(data);
|
|
174
|
-
this.messageCallback(wrapped);
|
|
367
|
+
this.messageCallback(wrapped, from);
|
|
175
368
|
}
|
|
176
369
|
catch (error) {
|
|
177
370
|
this.log('Error handling message:', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/supabase/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/supabase/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -158,13 +158,31 @@ export declare class TrysteroTransport implements Transport {
|
|
|
158
158
|
private sendUpdate;
|
|
159
159
|
private peers;
|
|
160
160
|
private onJoinErrorCallback?;
|
|
161
|
+
private _peerConnectCallback?;
|
|
162
|
+
private _peerDisconnectCallback?;
|
|
161
163
|
constructor(options: TrysteroTransportOptions);
|
|
162
164
|
private log;
|
|
163
165
|
get isConnected(): boolean;
|
|
164
166
|
connect(config: ConnectionConfig): Promise<void>;
|
|
165
167
|
disconnect(): void;
|
|
166
168
|
send(data: Uint8Array): Promise<void>;
|
|
167
|
-
|
|
169
|
+
/**
|
|
170
|
+
* Transport.sendTo: deliver to one peer (Trystero's action send accepts
|
|
171
|
+
* a target peer id). Used by GenericProvider for replies, acks and
|
|
172
|
+
* presence responses.
|
|
173
|
+
*/
|
|
174
|
+
sendTo(peerId: string, data: Uint8Array): Promise<void>;
|
|
175
|
+
onMessage(callback: (data: Uint8Array, from?: string) => void): () => void;
|
|
176
|
+
/**
|
|
177
|
+
* Register callback for new peer data-channel connections. Lets
|
|
178
|
+
* GenericProvider push our current doc/awareness state to a peer as
|
|
179
|
+
* soon as their channel opens, instead of only at our own connect()
|
|
180
|
+
* time (which fires before any mesh connection exists) or the next
|
|
181
|
+
* periodic sync tick.
|
|
182
|
+
*/
|
|
183
|
+
onPeerConnect(callback: (peerId: string) => void): () => void;
|
|
184
|
+
/** Transport.onPeerDisconnect: Trystero's onPeerLeave, the same peer id. */
|
|
185
|
+
onPeerDisconnect(callback: (peerId: string) => void): () => void;
|
|
168
186
|
/**
|
|
169
187
|
* Set a callback for join errors (optional).
|
|
170
188
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/trystero/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/trystero/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -114,18 +114,21 @@ export class TrysteroTransport {
|
|
|
114
114
|
receive((data, peerId) => {
|
|
115
115
|
this.log(`Received update from ${peerId} (${data.byteLength} bytes)`);
|
|
116
116
|
if (this._callback) {
|
|
117
|
-
// Convert ArrayBuffer to Uint8Array
|
|
118
|
-
this
|
|
117
|
+
// Convert ArrayBuffer to Uint8Array; peerId lets GenericProvider
|
|
118
|
+
// answer this peer directly via sendTo()
|
|
119
|
+
this._callback(new Uint8Array(data), peerId);
|
|
119
120
|
}
|
|
120
121
|
});
|
|
121
122
|
// Track peers
|
|
122
123
|
this.room.onPeerJoin((peerId) => {
|
|
123
124
|
this.peers.add(peerId);
|
|
124
125
|
this.log(`Peer joined: ${peerId} (${this.peers.size} total)`);
|
|
126
|
+
this._peerConnectCallback?.(peerId);
|
|
125
127
|
});
|
|
126
128
|
this.room.onPeerLeave((peerId) => {
|
|
127
129
|
this.peers.delete(peerId);
|
|
128
130
|
this.log(`Peer left: ${peerId} (${this.peers.size} remaining)`);
|
|
131
|
+
this._peerDisconnectCallback?.(peerId);
|
|
129
132
|
});
|
|
130
133
|
this._connected = true;
|
|
131
134
|
this.log(`✅ Connected to room: ${room}`);
|
|
@@ -154,6 +157,18 @@ export class TrysteroTransport {
|
|
|
154
157
|
this.log(`Sending update (${data.byteLength} bytes) to ${this.peers.size} peers`);
|
|
155
158
|
await this.sendUpdate(data, null);
|
|
156
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Transport.sendTo: deliver to one peer (Trystero's action send accepts
|
|
162
|
+
* a target peer id). Used by GenericProvider for replies, acks and
|
|
163
|
+
* presence responses.
|
|
164
|
+
*/
|
|
165
|
+
async sendTo(peerId, data) {
|
|
166
|
+
if (!this._connected || !this.sendUpdate)
|
|
167
|
+
return;
|
|
168
|
+
if (!this.peers.has(peerId))
|
|
169
|
+
return;
|
|
170
|
+
await this.sendUpdate(data, peerId);
|
|
171
|
+
}
|
|
157
172
|
onMessage(callback) {
|
|
158
173
|
this._callback = callback;
|
|
159
174
|
this.log('Message callback registered');
|
|
@@ -162,6 +177,26 @@ export class TrysteroTransport {
|
|
|
162
177
|
this.log('Message callback unregistered');
|
|
163
178
|
};
|
|
164
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* Register callback for new peer data-channel connections. Lets
|
|
182
|
+
* GenericProvider push our current doc/awareness state to a peer as
|
|
183
|
+
* soon as their channel opens, instead of only at our own connect()
|
|
184
|
+
* time (which fires before any mesh connection exists) or the next
|
|
185
|
+
* periodic sync tick.
|
|
186
|
+
*/
|
|
187
|
+
onPeerConnect(callback) {
|
|
188
|
+
this._peerConnectCallback = callback;
|
|
189
|
+
return () => {
|
|
190
|
+
this._peerConnectCallback = undefined;
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
/** Transport.onPeerDisconnect: Trystero's onPeerLeave, the same peer id. */
|
|
194
|
+
onPeerDisconnect(callback) {
|
|
195
|
+
this._peerDisconnectCallback = callback;
|
|
196
|
+
return () => {
|
|
197
|
+
this._peerDisconnectCallback = undefined;
|
|
198
|
+
};
|
|
199
|
+
}
|
|
165
200
|
/**
|
|
166
201
|
* Set a callback for join errors (optional).
|
|
167
202
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/trystero/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAqJH;;;GAGG;AACH,MAAM,OAAO,iBAAiB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/trystero/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,16 @@ export interface WebSocketConfig extends ConnectionConfig {
|
|
|
7
7
|
serverUrl: string;
|
|
8
8
|
/** Enable automatic reconnection on disconnect (default: true) */
|
|
9
9
|
autoReconnect?: boolean;
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Delay before the first reconnection attempt in milliseconds (default:
|
|
12
|
+
* 2000). Doubles per failed attempt, jittered by ±50 %, capped at
|
|
13
|
+
* `maxReconnectDelay` - a classroom of 30 browsers used to hit a
|
|
14
|
+
* restarting relay 15 times a second in lockstep and come back in the
|
|
15
|
+
* same instant (round 7, item 4; test/dummy/bench-ws-reconnect-storm.ts).
|
|
16
|
+
*/
|
|
11
17
|
reconnectDelay?: number;
|
|
18
|
+
/** Cap on the reconnection delay in milliseconds (default: 10000) */
|
|
19
|
+
maxReconnectDelay?: number;
|
|
12
20
|
/** Maximum reconnection attempts (0 = infinite, default: 0) */
|
|
13
21
|
maxReconnectAttempts?: number;
|
|
14
22
|
/** WebSocket protocols (optional) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/websocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AA6ClE;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,yFAAyF;IACzF,SAAS,EAAE,MAAM,CAAA;IACjB,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/websocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AA6ClE;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,yFAAyF;IACzF,SAAS,EAAE,MAAM,CAAA;IACjB,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC7B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAClD,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,eAAe,CAAC,CAA4B;IACpD,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,cAAc,CAAC,CAA+B;IACtD,OAAO,CAAC,qBAAqB,CAAiB;IAC9C,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,cAAc,CAAmB;IAEzC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAgFrD;;OAEG;IACH,UAAU,IAAI,IAAI;IAiBlB;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAiB5B;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAmB3D;;OAEG;IACH,OAAO,CAAC,aAAa;IAwBrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkCxB;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ"}
|
|
@@ -248,7 +248,13 @@ export class WebSocketTransport {
|
|
|
248
248
|
return;
|
|
249
249
|
}
|
|
250
250
|
this.reconnectAttempts++;
|
|
251
|
-
|
|
251
|
+
// Exponential backoff with jitter: the jitter is what breaks the herd
|
|
252
|
+
// on the relay's return, the cap what keeps recovery quick (y-websocket
|
|
253
|
+
// caps at 2.5 s, Socket.IO at 5 s; 10 s cuts the storm ~4x for a mean
|
|
254
|
+
// recovery wait under 8 s).
|
|
255
|
+
const base = this.config.reconnectDelay ?? 2000;
|
|
256
|
+
const cap = this.config.maxReconnectDelay ?? 10000;
|
|
257
|
+
const delay = Math.round(Math.min(cap, base * 2 ** (this.reconnectAttempts - 1)) * (0.5 + Math.random()));
|
|
252
258
|
this.log(`🔄 Attempting reconnection #${this.reconnectAttempts} in ${delay}ms...`);
|
|
253
259
|
this.reconnectTimer = setTimeout(async () => {
|
|
254
260
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/websocket/index.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,4BAA4B;AAC5B,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAE9E,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;IACzB,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACxE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAC,EAAE,CAAA;AAEJ,SAAS,MAAM,CAAC,IAAgB;IAC9B,IAAI,GAAG,GAAG,UAAU,CAAA;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;QAClC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC1D,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC;AAED,mEAAmE;AACnE,SAAS,gBAAgB,CAAC,IAAgB;IACxC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACnD,CAAC;AAED,uEAAuE;AACvE,SAAS,cAAc,CAAC,IAAgB;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;IAC/C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IAChC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IAChC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAA;IAC/B,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAA;IACvB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACpB,OAAO,OAAO,CAAA;AAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/websocket/index.ts"],"names":[],"mappings":"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"}
|