stormcloud-video-player 0.8.37 → 0.8.39
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/stormcloud-vp.min.js +2 -2
- package/lib/index.cjs +76 -23
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +76 -23
- package/lib/index.js.map +1 -1
- package/lib/player/AdBreakOrchestrator.cjs +69 -16
- package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
- package/lib/player/AdConfigManager.cjs +69 -16
- package/lib/player/AdConfigManager.cjs.map +1 -1
- package/lib/player/HlsEngine.cjs +1 -1
- package/lib/player/HlsEngine.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.cjs +71 -18
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.cjs +71 -18
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/index.cjs +71 -18
- package/lib/players/index.cjs.map +1 -1
- package/lib/sdk/hlsAdPlayer.cjs +1 -1
- package/lib/sdk/hlsAdPlayer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.cjs +71 -18
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/utils/mqttClient.cjs +74 -21
- package/lib/utils/mqttClient.cjs.map +1 -1
- package/lib/utils/tracking.cjs +69 -16
- package/lib/utils/tracking.cjs.map +1 -1
- package/package.json +1 -1
- package/rollup.config.js +6 -0
|
@@ -308,10 +308,56 @@ function buildPlayerTopic(licenseKey, channel) {
|
|
|
308
308
|
// src/utils/mqttClient.ts
|
|
309
309
|
var import_mqtt = __toESM(require("mqtt"), 1);
|
|
310
310
|
var LOG = "[StormcloudVideoPlayer][MQTT]";
|
|
311
|
+
var KEEPALIVE_SECONDS = 30;
|
|
312
|
+
var CONNECT_TIMEOUT_MS = 1e4;
|
|
313
|
+
var RECONNECT_BASE_MS = 5e3;
|
|
314
|
+
var RECONNECT_MAX_MS = 6e4;
|
|
315
|
+
var MAX_RECONNECT_ATTEMPTS = 8;
|
|
316
|
+
var COOLDOWN_MS = 10 * 6e4;
|
|
311
317
|
var client = null;
|
|
312
318
|
var status = "disconnected";
|
|
313
|
-
|
|
314
|
-
|
|
319
|
+
var reconnectAttempts = 0;
|
|
320
|
+
var reconnectTimer = null;
|
|
321
|
+
var stopped = false;
|
|
322
|
+
function clearReconnectTimer() {
|
|
323
|
+
if (reconnectTimer) {
|
|
324
|
+
clearTimeout(reconnectTimer);
|
|
325
|
+
reconnectTimer = null;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
function teardownClient() {
|
|
329
|
+
if (client) {
|
|
330
|
+
try {
|
|
331
|
+
client.removeAllListeners();
|
|
332
|
+
client.end(true);
|
|
333
|
+
} catch (unused) {}
|
|
334
|
+
client = null;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
function scheduleReconnect() {
|
|
338
|
+
if (stopped || !isMQTTEnabled() || reconnectTimer) return;
|
|
339
|
+
if (reconnectAttempts >= MAX_RECONNECT_ATTEMPTS) {
|
|
340
|
+
console.warn("".concat(LOG, " giving up after ").concat(reconnectAttempts, " attempts; cooling down for ").concat(COOLDOWN_MS / 6e4, "m"));
|
|
341
|
+
teardownClient();
|
|
342
|
+
status = "disconnected";
|
|
343
|
+
reconnectTimer = setTimeout(function() {
|
|
344
|
+
reconnectTimer = null;
|
|
345
|
+
reconnectAttempts = 0;
|
|
346
|
+
openConnection();
|
|
347
|
+
}, COOLDOWN_MS);
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
var delay = Math.min(RECONNECT_MAX_MS, RECONNECT_BASE_MS * Math.pow(2, reconnectAttempts));
|
|
351
|
+
var jitter = Math.floor(Math.random() * 1e3);
|
|
352
|
+
reconnectAttempts += 1;
|
|
353
|
+
reconnectTimer = setTimeout(function() {
|
|
354
|
+
reconnectTimer = null;
|
|
355
|
+
openConnection();
|
|
356
|
+
}, delay + jitter);
|
|
357
|
+
}
|
|
358
|
+
function openConnection() {
|
|
359
|
+
if (stopped || !isMQTTEnabled()) return;
|
|
360
|
+
teardownClient();
|
|
315
361
|
var url = buildMQTTBrokerUrl();
|
|
316
362
|
status = "connecting";
|
|
317
363
|
var clientId = "stormcloud-vp-".concat(Math.random().toString(36).slice(2, 9));
|
|
@@ -320,41 +366,48 @@ function initMQTTClient() {
|
|
|
320
366
|
clientId: clientId,
|
|
321
367
|
username: mqttConfig.username,
|
|
322
368
|
password: mqttConfig.password,
|
|
323
|
-
keepalive:
|
|
369
|
+
keepalive: KEEPALIVE_SECONDS,
|
|
324
370
|
clean: true,
|
|
325
|
-
reconnectPeriod:
|
|
326
|
-
connectTimeout:
|
|
327
|
-
queueQoSZero: false
|
|
371
|
+
reconnectPeriod: 0,
|
|
372
|
+
connectTimeout: CONNECT_TIMEOUT_MS,
|
|
373
|
+
queueQoSZero: false,
|
|
374
|
+
reschedulePings: true
|
|
328
375
|
});
|
|
329
376
|
} catch (err) {
|
|
330
377
|
status = "error";
|
|
331
378
|
console.warn("".concat(LOG, " connect() threw:"), err);
|
|
379
|
+
scheduleReconnect();
|
|
332
380
|
return;
|
|
333
381
|
}
|
|
334
382
|
client.on("connect", function() {
|
|
335
383
|
status = "connected";
|
|
384
|
+
reconnectAttempts = 0;
|
|
385
|
+
clearReconnectTimer();
|
|
336
386
|
console.info("".concat(LOG, " connected to ").concat(url));
|
|
337
387
|
});
|
|
338
|
-
client.on("reconnect", function() {
|
|
339
|
-
status = "connecting";
|
|
340
|
-
console.info("".concat(LOG, " reconnecting…"));
|
|
341
|
-
});
|
|
342
388
|
client.on("offline", function() {
|
|
343
|
-
status = "disconnected";
|
|
389
|
+
if (status === "connected") status = "disconnected";
|
|
344
390
|
console.warn("".concat(LOG, " offline"));
|
|
391
|
+
scheduleReconnect();
|
|
345
392
|
});
|
|
346
393
|
client.on("error", function(err) {
|
|
347
394
|
status = "error";
|
|
348
395
|
console.warn("".concat(LOG, " error:"), err.message);
|
|
396
|
+
scheduleReconnect();
|
|
349
397
|
});
|
|
350
398
|
client.on("close", function() {
|
|
351
|
-
if (status === "connected")
|
|
352
|
-
|
|
353
|
-
}
|
|
399
|
+
if (status === "connected") status = "disconnected";
|
|
400
|
+
scheduleReconnect();
|
|
354
401
|
});
|
|
355
402
|
}
|
|
403
|
+
function initMQTTClient() {
|
|
404
|
+
if (client || !isMQTTEnabled()) return;
|
|
405
|
+
stopped = false;
|
|
406
|
+
reconnectAttempts = 0;
|
|
407
|
+
openConnection();
|
|
408
|
+
}
|
|
356
409
|
function ensureMQTTClient() {
|
|
357
|
-
if (isMQTTEnabled() && !client) {
|
|
410
|
+
if (isMQTTEnabled() && !client && !reconnectTimer) {
|
|
358
411
|
initMQTTClient();
|
|
359
412
|
}
|
|
360
413
|
}
|
|
@@ -363,7 +416,7 @@ function publishMQTT(topic, payload) {
|
|
|
363
416
|
return false;
|
|
364
417
|
}
|
|
365
418
|
ensureMQTTClient();
|
|
366
|
-
if (!client) {
|
|
419
|
+
if (!client || !client.connected) {
|
|
367
420
|
return false;
|
|
368
421
|
}
|
|
369
422
|
try {
|