@rapidmx/meet-plugin 0.9.0 → 0.9.1

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.
@@ -192,8 +192,16 @@ export class GuestSignalingClient implements SignalingChannel {
192
192
  method: "POST",
193
193
  headers,
194
194
  body: JSON.stringify(message),
195
- // Lets a `bye` sent as the page unloads still go out.
196
- keepalive: true,
195
+ // Only a `bye` needs to survive the page unloading - every other message is sent while the page (and
196
+ // the rest of this call's signaling) is very much alive. `keepalive` is a real-world liability to set
197
+ // unconditionally: some restrictive networks' inspecting proxies single out a `keepalive` fetch (it
198
+ // tells the browser the request may outlive the page - the same signal `navigator.sendBeacon()` and an
199
+ // `unload` handler's own fetch give off) for extra scrutiny or drop it outright, well short of Chrome's
200
+ // documented 64 KiB-per-request/several-MB-total keepalive quota. A participant behind such a network
201
+ // was seen stuck signaling forever - every `hello`/offer/answer/ICE candidate sent with `keepalive` and
202
+ // silently going nowhere (`send()` is fire-and-forget) - while an identical join from an unrestricted
203
+ // network connected normally.
204
+ keepalive: message.kind === "bye",
197
205
  }).catch(() => {
198
206
  // Best-effort - see this method's doc comment.
199
207
  });
@@ -150,8 +150,16 @@ export class GuestSignalingClient {
150
150
  method: "POST",
151
151
  headers,
152
152
  body: JSON.stringify(message),
153
- // Lets a `bye` sent as the page unloads still go out.
154
- keepalive: true,
153
+ // Only a `bye` needs to survive the page unloading - every other message is sent while the page (and
154
+ // the rest of this call's signaling) is very much alive. `keepalive` is a real-world liability to set
155
+ // unconditionally: some restrictive networks' inspecting proxies single out a `keepalive` fetch (it
156
+ // tells the browser the request may outlive the page - the same signal `navigator.sendBeacon()` and an
157
+ // `unload` handler's own fetch give off) for extra scrutiny or drop it outright, well short of Chrome's
158
+ // documented 64 KiB-per-request/several-MB-total keepalive quota. A participant behind such a network
159
+ // was seen stuck signaling forever - every `hello`/offer/answer/ICE candidate sent with `keepalive` and
160
+ // silently going nowhere (`send()` is fire-and-forget) - while an identical join from an unrestricted
161
+ // network connected normally.
162
+ keepalive: message.kind === "bye",
155
163
  }).catch(() => {
156
164
  // Best-effort - see this method's doc comment.
157
165
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rapidmx/meet-plugin",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "description": "RapidMX plugin that provides WebRTC video conferencing, joinable from a calendar invite or a shared link.",
5
5
  "repository": "https://github.com/rapidmx/meet-plugin.git",
6
6
  "author": "RapidREST <rapidrests@gmail.com>",