@unityevolv/ofiskit-realtime-client 0.1.2 → 0.2.0

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 CHANGED
@@ -22,6 +22,23 @@ The RTC half is an adapter too. The built-in one is a peer-to-peer mesh with
22
22
  audio, video and screen share; another provider's SDK goes behind the same
23
23
  interface, and the UI never learns which is in use.
24
24
 
25
+ An adapter may also carry small messages between the legs of a call. It is
26
+ optional, so check for it:
27
+
28
+ ```ts
29
+ const channel = client.rtc.openDataChannel?.('input', { ordered: false, maxRetransmits: 0 })
30
+ if (channel) {
31
+ const stop = channel.onMessage((data, fromDeviceId) => handle(data, fromDeviceId))
32
+ channel.send(JSON.stringify(event)) // everyone in the call
33
+ channel.send(JSON.stringify(event), deviceId) // one leg
34
+ }
35
+ ```
36
+
37
+ Both ends open the same label. Strings only, at most `DATA_CHANNEL_MAX_BYTES`
38
+ (16 KiB) each; a leg not connected yet is skipped, and the channel closes when
39
+ the call ends. The built-in mesh carries it on a negotiated data channel per
40
+ connection, with an id both ends derive from the label.
41
+
25
42
  `connect` takes any socket-like object, so the client can run over something
26
43
  other than Socket.IO — which is how the browser-only demo puts the whole office
27
44
  in a tab.
package/dist/index.d.ts CHANGED
@@ -13,7 +13,7 @@ export { applyChange, applyDiff, callDevices, callIn, callSeats, emptyOffice, fr
13
13
  * the signalling story, and an external provider's adapter is written against
14
14
  * exactly this and nothing more.
15
15
  */
16
- export { AUDIO_BITRATE, CONNECT_TIMEOUT_MS, SCREEN_CEILING, VIDEO_STEPS, type JoinOptions, type RtcClientAdapter, type RtcEvent, type RtcHandler, type Signaller, } from './rtc/adapter.js';
16
+ export { AUDIO_BITRATE, CONNECT_TIMEOUT_MS, DATA_CHANNEL_MAX_BYTES, SCREEN_CEILING, VIDEO_STEPS, type DataChannelOptions, type JoinOptions, type RtcClientAdapter, type RtcDataChannel, type RtcEvent, type RtcHandler, type Signaller, } from './rtc/adapter.js';
17
17
  export { meshAdapter, describeMediaError } from './rtc/mesh.js';
18
18
  /**
19
19
  * Choosing what to share, on a platform whose browser cannot ask.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,MAAM,EACN,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,cAAc,EACd,GAAG,EACH,QAAQ,EACR,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,MAAM,GACZ,MAAM,mBAAmB,CAAA;AAE1B;;;;;;GAMG;AACH,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,SAAS,GACf,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAE/D;;;;;;GAMG;AACH,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,YAAY,GAClB,MAAM,iBAAiB,CAAA;AAExB;;;;;;;GAOG;AACH,OAAO,EACL,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,UAAU,GAChB,MAAM,aAAa,CAAA;AAEpB;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,4CAA4C,CAAA;AAErF;;;;;;GAMG;AACH,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,QAAQ,EACR,MAAM,GACP,MAAM,4CAA4C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,MAAM,EACN,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,cAAc,EACd,GAAG,EACH,QAAQ,EACR,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,MAAM,GACZ,MAAM,mBAAmB,CAAA;AAE1B;;;;;;GAMG;AACH,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,SAAS,GACf,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAE/D;;;;;;GAMG;AACH,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,YAAY,GAClB,MAAM,iBAAiB,CAAA;AAExB;;;;;;;GAOG;AACH,OAAO,EACL,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,UAAU,GAChB,MAAM,aAAa,CAAA;AAEpB;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,4CAA4C,CAAA;AAErF;;;;;;GAMG;AACH,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,QAAQ,EACR,MAAM,GACP,MAAM,4CAA4C,CAAA"}
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ export { applyChange, applyDiff, callDevices, callIn, callSeats, emptyOffice, fr
13
13
  * the signalling story, and an external provider's adapter is written against
14
14
  * exactly this and nothing more.
15
15
  */
16
- export { AUDIO_BITRATE, CONNECT_TIMEOUT_MS, SCREEN_CEILING, VIDEO_STEPS, } from './rtc/adapter.js';
16
+ export { AUDIO_BITRATE, CONNECT_TIMEOUT_MS, DATA_CHANNEL_MAX_BYTES, SCREEN_CEILING, VIDEO_STEPS, } from './rtc/adapter.js';
17
17
  export { meshAdapter, describeMediaError } from './rtc/mesh.js';
18
18
  /**
19
19
  * Choosing what to share, on a platform whose browser cannot ask.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,MAAM,EACN,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,cAAc,EACd,GAAG,EACH,QAAQ,GAIT,MAAM,mBAAmB,CAAA;AAE1B;;;;;;GAMG;AACH,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,WAAW,GAMZ,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAE/D;;;;;;GAMG;AACH,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,aAAa,GAId,MAAM,iBAAiB,CAAA;AAExB;;;;;;;GAOG;AACH,OAAO,EACL,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,YAAY,GAKb,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,gBAAgB,GAMjB,MAAM,aAAa,CAAA;AAEpB;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAiB,MAAM,4CAA4C,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,MAAM,EACN,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,cAAc,EACd,GAAG,EACH,QAAQ,GAIT,MAAM,mBAAmB,CAAA;AAE1B;;;;;;GAMG;AACH,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,WAAW,GAQZ,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAE/D;;;;;;GAMG;AACH,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,aAAa,GAId,MAAM,iBAAiB,CAAA;AAExB;;;;;;;GAOG;AACH,OAAO,EACL,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,YAAY,GAKb,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,gBAAgB,GAMjB,MAAM,aAAa,CAAA;AAEpB;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAiB,MAAM,4CAA4C,CAAA"}
@@ -155,8 +155,57 @@ export interface RtcClientAdapter {
155
155
  audioDeviceId?: string;
156
156
  videoDeviceId?: string;
157
157
  }): Promise<void>;
158
+ /**
159
+ * A channel for small messages between the legs of this call, by label.
160
+ *
161
+ * Optional, and a host detects it rather than assumes it: a provider that
162
+ * cannot carry data leaves it out, and whatever the host builds on it is
163
+ * switched off for that provider. The adapter carries strings and nothing
164
+ * else — what they mean is entirely the host's business.
165
+ *
166
+ * Both ends open the same label, and a message sent before the other end has
167
+ * opened it is lost, not queued. A channel lasts until it is closed or the call
168
+ * ends, and legs that join after it was opened are included as they connect.
169
+ */
170
+ openDataChannel?(label: string, options?: DataChannelOptions): RtcDataChannel;
158
171
  on(handler: RtcHandler): () => void;
159
172
  }
173
+ /**
174
+ * How a data channel delivers.
175
+ *
176
+ * The default is ordered and reliable. Something that is only worth having while
177
+ * it is fresh — a pointer position, say — is better unordered with no
178
+ * retransmits, so a lost message is skipped rather than holding up the ones after
179
+ * it.
180
+ */
181
+ export interface DataChannelOptions {
182
+ ordered?: boolean;
183
+ maxRetransmits?: number;
184
+ }
185
+ /** One labelled data channel, across every leg of the call. */
186
+ export interface RtcDataChannel {
187
+ /**
188
+ * Send to one leg, or to every leg in the call when `toDeviceId` is left out.
189
+ *
190
+ * A leg that is not connected yet, or not in the call at all, is skipped
191
+ * without complaint: there is nobody to deliver to. A message over
192
+ * `DATA_CHANNEL_MAX_BYTES` is refused with a `RangeError`, because it is a bug
193
+ * in the caller rather than a condition of the network.
194
+ */
195
+ send(data: string, toDeviceId?: string): void;
196
+ /** Every message that arrives, with the device it came from. Returns the unsubscribe. */
197
+ onMessage(handler: (data: string, fromDeviceId: string) => void): () => void;
198
+ /** Stop sending and receiving on this label. Safe to call twice. */
199
+ close(): void;
200
+ }
201
+ /**
202
+ * The largest message a data channel carries, in UTF-8 bytes.
203
+ *
204
+ * Sixteen kilobytes is what every browser delivers whole without negotiating a
205
+ * larger size, and it is far more than an input event needs. Anything bigger is
206
+ * a file, and a file does not belong on a channel shared with the call.
207
+ */
208
+ export declare const DATA_CHANNEL_MAX_BYTES: number;
160
209
  /**
161
210
  * Ceilings per stream, so four cameras plus a share stay inside what a home
162
211
  * connection can upload.
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/rtc/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/rtc/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAA;AAE1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C;;;;;;;;;;;;;;;GAeG;AAEH,gFAAgF;AAChF,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACrF;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AAChD;;;;;GAKG;GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;CAAE,GAC/F;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;CAAE;AAClF,iFAAiF;GAC/E;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE;AAClG,2EAA2E;GACzE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE;AACxE;;;;;;GAMG;GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACvD,gFAAgF;GAC9E;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAAE,CAAA;AAE9E,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;AAElD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAA;IAChB,sFAAsF;IACtF,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,kEAAkE;IAClE,YAAY,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9E,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAA;IAClC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;CAClF;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtB,aAAa,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1D,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhC;;;;;;OAMG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAEhD;;;;;;OAMG;IACH,iBAAiB,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAE1C,kEAAkE;IAClE,UAAU,CAAC,OAAO,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtF;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,cAAc,CAAA;IAE7E,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,IAAI,CAAA;CACpC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7C,yFAAyF;IACzF,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAC5E,oEAAoE;IACpE,KAAK,IAAI,IAAI,CAAA;CACd;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,QAAY,CAAA;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;EAKd,CAAA;AAEV;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;CAAsD,CAAA;AAEjF,6EAA6E;AAC7E,eAAO,MAAM,aAAa,QAAS,CAAA;AAEnC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,OAAO,CAAA;AAClC,eAAO,MAAM,gBAAgB,OAAQ,CAAA;AACrC,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,MAAM,CAAA;AAEpC;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAQpD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAE3F;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAA"}
@@ -1,3 +1,11 @@
1
+ /**
2
+ * The largest message a data channel carries, in UTF-8 bytes.
3
+ *
4
+ * Sixteen kilobytes is what every browser delivers whole without negotiating a
5
+ * larger size, and it is far more than an input event needs. Anything bigger is
6
+ * a file, and a file does not belong on a channel shared with the call.
7
+ */
8
+ export const DATA_CHANNEL_MAX_BYTES = 16 * 1024;
1
9
  /**
2
10
  * Ceilings per stream, so four cameras plus a share stay inside what a home
3
11
  * connection can upload.
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/rtc/adapter.ts"],"names":[],"mappings":"AA4HA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE;IACxD,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;IACtD,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;IACtD,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;CAC9C,CAAA;AAEV;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,EAAW,CAAA;AAEjF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAA;AAEnC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAA;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAA;AACrC,sFAAsF;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAEpC;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAmB;IAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAClC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACtC,KAAK,IAAI,SAAS,GAAG,SAAS,CAAA;IAChC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAAsD;IAChF,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAA;AACpE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAA"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/rtc/adapter.ts"],"names":[],"mappings":"AAwKA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAA;AAE/C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE;IACxD,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;IACtD,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;IACtD,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;CAC9C,CAAA;AAEV;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,EAAW,CAAA;AAEjF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAA;AAEnC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAA;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAA;AACrC,sFAAsF;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAEpC;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAmB;IAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAClC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACtC,KAAK,IAAI,SAAS,GAAG,SAAS,CAAA;IAChC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAAsD;IAChF,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAA;AACpE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAA"}
@@ -1,4 +1,14 @@
1
1
  import { type RtcClientAdapter, type Signaller } from './adapter.js';
2
+ /**
3
+ * The SCTP stream id a label always gets.
4
+ *
5
+ * Both ends derive it from the label alone, which is what lets a channel be
6
+ * negotiated out of band: nobody announces it and nobody waits for the other
7
+ * side's announcement. Kept under 1024, the fewest streams any browser offers.
8
+ */
9
+ export declare function dataChannelId(label: string): number;
10
+ /** How many bytes a string is on the wire, without needing a TextEncoder. */
11
+ export declare function utf8Length(text: string): number;
2
12
  export declare function meshAdapter(signaller: Signaller): RtcClientAdapter;
3
13
  /**
4
14
  * Turn a getUserMedia failure into something worth reading.
@@ -1 +1 @@
1
- {"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../../src/rtc/mesh.ts"],"names":[],"mappings":"AAEA,OAAO,EAUL,KAAK,gBAAgB,EAGrB,KAAK,SAAS,EACf,MAAM,cAAc,CAAA;AA8DrB,wBAAgB,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,gBAAgB,CA+yBlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,CAkB1F"}
1
+ {"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../../src/rtc/mesh.ts"],"names":[],"mappings":"AAEA,OAAO,EAYL,KAAK,gBAAgB,EAIrB,KAAK,SAAS,EACf,MAAM,cAAc,CAAA;AAwErB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASnD;AAED,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAe/C;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAm6BlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,CAkB1F"}
package/dist/rtc/mesh.js CHANGED
@@ -1,8 +1,49 @@
1
- import { AUDIO_BITRATE, CONNECT_TIMEOUT_MS, LEVEL_INTERVAL_MS, SCREEN_CEILING, SPEAKING_LEVEL, VIDEO_STEPS, rmsLevel, speakingNow, } from './adapter.js';
1
+ import { AUDIO_BITRATE, CONNECT_TIMEOUT_MS, DATA_CHANNEL_MAX_BYTES, LEVEL_INTERVAL_MS, SCREEN_CEILING, SPEAKING_LEVEL, VIDEO_STEPS, rmsLevel, speakingNow, } from './adapter.js';
2
2
  import { desktopConstraints, describeShareError, shareCancelled, } from './screen.js';
3
+ /**
4
+ * The SCTP stream id a label always gets.
5
+ *
6
+ * Both ends derive it from the label alone, which is what lets a channel be
7
+ * negotiated out of band: nobody announces it and nobody waits for the other
8
+ * side's announcement. Kept under 1024, the fewest streams any browser offers.
9
+ */
10
+ export function dataChannelId(label) {
11
+ // FNV-1a, 32 bits: small, stable across platforms, and good enough to spread a
12
+ // handful of labels.
13
+ let hash = 0x811c9dc5;
14
+ for (let index = 0; index < label.length; index++) {
15
+ hash ^= label.charCodeAt(index);
16
+ hash = Math.imul(hash, 0x01000193) >>> 0;
17
+ }
18
+ return hash % 1024;
19
+ }
20
+ /** How many bytes a string is on the wire, without needing a TextEncoder. */
21
+ export function utf8Length(text) {
22
+ let bytes = 0;
23
+ for (let index = 0; index < text.length; index++) {
24
+ const code = text.charCodeAt(index);
25
+ if (code < 0x80)
26
+ bytes += 1;
27
+ else if (code < 0x800)
28
+ bytes += 2;
29
+ else if (code >= 0xd800 && code <= 0xdbff && index + 1 < text.length) {
30
+ const next = text.charCodeAt(index + 1);
31
+ if (next >= 0xdc00 && next <= 0xdfff) {
32
+ bytes += 4;
33
+ index++;
34
+ }
35
+ else
36
+ bytes += 3;
37
+ }
38
+ else
39
+ bytes += 3;
40
+ }
41
+ return bytes;
42
+ }
3
43
  export function meshAdapter(signaller) {
4
44
  const handlers = new Set();
5
45
  const peers = new Map();
46
+ const channels = new Map();
6
47
  let selfDeviceId = '';
7
48
  let iceServers = [];
8
49
  let stopSignals = null;
@@ -185,7 +226,12 @@ export function meshAdapter(signaller) {
185
226
  shareStreamId: null,
186
227
  shown: { camera: null, screen: null },
187
228
  connectTimer: null,
229
+ channels: new Map(),
188
230
  };
231
+ // Every channel already open, on the new connection before its first offer,
232
+ // so the offer carries the data transport and nothing has to renegotiate.
233
+ for (const channel of channels.values())
234
+ attachChannel(peer, channel);
189
235
  connection.onicecandidate = ({ candidate }) => {
190
236
  if (candidate) {
191
237
  signaller.send({ to: peer.deviceId, type: 'candidate', payload: candidate.toJSON() });
@@ -561,10 +607,117 @@ export function meshAdapter(signaller) {
561
607
  const offered = sessionOf(offer?.sdp);
562
608
  return known !== null && offered !== null && known !== offered;
563
609
  }
610
+ // ----------------------------------------------------------- data channels
611
+ /**
612
+ * One connection's end of one channel.
613
+ *
614
+ * Negotiated with a fixed id, the same on both ends, so neither side opens it
615
+ * in band and waits to hear about the other's. Whatever arrives is tagged with
616
+ * the device this connection goes to, which is the only sender it can have.
617
+ */
618
+ function attachChannel(peer, channel) {
619
+ let wire;
620
+ try {
621
+ wire = peer.connection.createDataChannel(channel.label, channel.init);
622
+ }
623
+ catch {
624
+ // A connection that has already closed has nobody to carry anything to.
625
+ return;
626
+ }
627
+ wire.onmessage = ({ data }) => {
628
+ // Strings only, and never more than a sender is allowed to send: anything
629
+ // else is a peer running something other than this adapter.
630
+ if (typeof data !== 'string' || utf8Length(data) > DATA_CHANNEL_MAX_BYTES)
631
+ return;
632
+ for (const handler of [...channel.handlers])
633
+ handler(data, peer.deviceId);
634
+ };
635
+ peer.channels.set(channel.label, wire);
636
+ }
637
+ function detachChannel(peer, label) {
638
+ const wire = peer.channels.get(label);
639
+ if (!wire)
640
+ return;
641
+ wire.onmessage = null;
642
+ wire.close();
643
+ peer.channels.delete(label);
644
+ }
645
+ function closeChannel(channel) {
646
+ if (channels.get(channel.label) !== channel)
647
+ return;
648
+ channels.delete(channel.label);
649
+ channel.handlers.clear();
650
+ for (const peer of peers.values())
651
+ detachChannel(peer, channel.label);
652
+ }
653
+ function openDataChannel(label, options = {}) {
654
+ if (label === '')
655
+ throw new TypeError('A data channel needs a label.');
656
+ if (channels.has(label))
657
+ throw new Error(`The data channel "${label}" is already open.`);
658
+ const id = dataChannelId(label);
659
+ for (const other of channels.values()) {
660
+ // Two labels on one stream would deliver each other's messages. Rare, and
661
+ // loud when it happens, which is better than quietly crossed wires.
662
+ if (other.id === id) {
663
+ throw new Error(`The data channels "${label}" and "${other.label}" share a stream id.`);
664
+ }
665
+ }
666
+ const channel = {
667
+ label,
668
+ id,
669
+ init: {
670
+ negotiated: true,
671
+ id,
672
+ ordered: options.ordered ?? true,
673
+ ...(options.maxRetransmits === undefined ? {} : { maxRetransmits: options.maxRetransmits }),
674
+ },
675
+ handlers: new Set(),
676
+ };
677
+ channels.set(label, channel);
678
+ for (const peer of peers.values())
679
+ attachChannel(peer, channel);
680
+ return {
681
+ send(data, toDeviceId) {
682
+ if (channels.get(label) !== channel)
683
+ return;
684
+ const bytes = utf8Length(data);
685
+ if (bytes > DATA_CHANNEL_MAX_BYTES) {
686
+ throw new RangeError(`A data channel message is at most ${DATA_CHANNEL_MAX_BYTES} bytes; this one is ${bytes}.`);
687
+ }
688
+ const targets = toDeviceId === undefined ? [...peers.values()] : [peers.get(toDeviceId)];
689
+ for (const peer of targets) {
690
+ const wire = peer?.channels.get(label);
691
+ if (wire?.readyState !== 'open')
692
+ continue;
693
+ try {
694
+ wire.send(data);
695
+ }
696
+ catch {
697
+ // A full buffer or a connection closing under us loses this one
698
+ // message to this one peer; the rest of the call still gets theirs.
699
+ }
700
+ }
701
+ },
702
+ onMessage(handler) {
703
+ if (channels.get(label) !== channel)
704
+ return () => { };
705
+ channel.handlers.add(handler);
706
+ return () => {
707
+ channel.handlers.delete(handler);
708
+ };
709
+ },
710
+ close() {
711
+ closeChannel(channel);
712
+ },
713
+ };
714
+ }
564
715
  /** Close one connection and say so. The capture is untouched: others still need it. */
565
716
  function closePeer(peer) {
566
717
  if (peer.connectTimer)
567
718
  clearTimeout(peer.connectTimer);
719
+ for (const label of [...peer.channels.keys()])
720
+ detachChannel(peer, label);
568
721
  peer.connection.close();
569
722
  if (peers.get(peer.deviceId) === peer)
570
723
  peers.delete(peer.deviceId);
@@ -573,6 +726,9 @@ export function meshAdapter(signaller) {
573
726
  async function leave() {
574
727
  for (const peer of [...peers.values()])
575
728
  closePeer(peer);
729
+ // A channel belongs to a call, and this one is over.
730
+ for (const channel of [...channels.values()])
731
+ closeChannel(channel);
576
732
  for (const stream of [microphone, camera, screen]) {
577
733
  for (const track of stream?.getTracks() ?? [])
578
734
  track.stop();
@@ -655,6 +811,7 @@ export function meshAdapter(signaller) {
655
811
  if (peer)
656
812
  closePeer(peer);
657
813
  },
814
+ openDataChannel,
658
815
  async setMicrophone(on) {
659
816
  const stream = on ? await ensureMicrophone() : microphone;
660
817
  const track = stream?.getAudioTracks()[0];
@@ -1 +1 @@
1
- {"version":3,"file":"mesh.js","sourceRoot":"","sources":["../../src/rtc/mesh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesh.js","sourceRoot":"","sources":["../../src/rtc/mesh.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unityevolv/ofiskit-realtime-client",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "The office state on the client: snapshot, diffs, resync, and the RTC client adapter interface with the built-in peer-to-peer implementation. No DOM, so React Native can use it too.",
5
5
  "license": "AGPL-3.0-only",
6
6
  "type": "module",
@@ -29,8 +29,8 @@
29
29
  "typecheck": "tsc -p tsconfig.json --noEmit"
30
30
  },
31
31
  "dependencies": {
32
- "@unityevolv/ofiskit-presence-store": "0.1.0",
33
- "@unityevolv/ofiskit-realtime-core": "0.1.1",
32
+ "@unityevolv/ofiskit-presence-store": "0.1.1",
33
+ "@unityevolv/ofiskit-realtime-core": "0.1.2",
34
34
  "@unityevolv/ofiskit-template": "0.1.0",
35
35
  "socket.io-client": "^4.8.1"
36
36
  }