stormcloud-video-player 0.8.38 → 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 +1 -1
- package/lib/index.cjs +74 -21
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +74 -21
- 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/StormcloudVideoPlayer.cjs +69 -16
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.cjs +69 -16
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/index.cjs +69 -16
- package/lib/players/index.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.cjs +69 -16
- 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/lib/types-iDjS8f_7.d.cts +0 -133
package/lib/index.cjs
CHANGED
|
@@ -2110,8 +2110,17 @@ function buildPlayerTopic(licenseKey, channel) {
|
|
|
2110
2110
|
// src/utils/mqttClient.ts
|
|
2111
2111
|
var import_mqtt = __toESM(require("mqtt"), 1);
|
|
2112
2112
|
var LOG = "[StormcloudVideoPlayer][MQTT]";
|
|
2113
|
+
var KEEPALIVE_SECONDS = 30;
|
|
2114
|
+
var CONNECT_TIMEOUT_MS = 1e4;
|
|
2115
|
+
var RECONNECT_BASE_MS = 5e3;
|
|
2116
|
+
var RECONNECT_MAX_MS = 6e4;
|
|
2117
|
+
var MAX_RECONNECT_ATTEMPTS = 8;
|
|
2118
|
+
var COOLDOWN_MS = 10 * 6e4;
|
|
2113
2119
|
var client = null;
|
|
2114
2120
|
var status = "disconnected";
|
|
2121
|
+
var reconnectAttempts = 0;
|
|
2122
|
+
var reconnectTimer = null;
|
|
2123
|
+
var stopped = false;
|
|
2115
2124
|
function getMQTTStatus() {
|
|
2116
2125
|
return status;
|
|
2117
2126
|
}
|
|
@@ -2125,8 +2134,45 @@ function configureMQTT(overrides) {
|
|
|
2125
2134
|
applyMQTTConfig(overrides);
|
|
2126
2135
|
disconnectMQTT();
|
|
2127
2136
|
}
|
|
2128
|
-
function
|
|
2129
|
-
if (
|
|
2137
|
+
function clearReconnectTimer() {
|
|
2138
|
+
if (reconnectTimer) {
|
|
2139
|
+
clearTimeout(reconnectTimer);
|
|
2140
|
+
reconnectTimer = null;
|
|
2141
|
+
}
|
|
2142
|
+
}
|
|
2143
|
+
function teardownClient() {
|
|
2144
|
+
if (client) {
|
|
2145
|
+
try {
|
|
2146
|
+
client.removeAllListeners();
|
|
2147
|
+
client.end(true);
|
|
2148
|
+
} catch (unused) {}
|
|
2149
|
+
client = null;
|
|
2150
|
+
}
|
|
2151
|
+
}
|
|
2152
|
+
function scheduleReconnect() {
|
|
2153
|
+
if (stopped || !isMQTTEnabled() || reconnectTimer) return;
|
|
2154
|
+
if (reconnectAttempts >= MAX_RECONNECT_ATTEMPTS) {
|
|
2155
|
+
console.warn("".concat(LOG, " giving up after ").concat(reconnectAttempts, " attempts; cooling down for ").concat(COOLDOWN_MS / 6e4, "m"));
|
|
2156
|
+
teardownClient();
|
|
2157
|
+
status = "disconnected";
|
|
2158
|
+
reconnectTimer = setTimeout(function() {
|
|
2159
|
+
reconnectTimer = null;
|
|
2160
|
+
reconnectAttempts = 0;
|
|
2161
|
+
openConnection();
|
|
2162
|
+
}, COOLDOWN_MS);
|
|
2163
|
+
return;
|
|
2164
|
+
}
|
|
2165
|
+
var delay = Math.min(RECONNECT_MAX_MS, RECONNECT_BASE_MS * Math.pow(2, reconnectAttempts));
|
|
2166
|
+
var jitter = Math.floor(Math.random() * 1e3);
|
|
2167
|
+
reconnectAttempts += 1;
|
|
2168
|
+
reconnectTimer = setTimeout(function() {
|
|
2169
|
+
reconnectTimer = null;
|
|
2170
|
+
openConnection();
|
|
2171
|
+
}, delay + jitter);
|
|
2172
|
+
}
|
|
2173
|
+
function openConnection() {
|
|
2174
|
+
if (stopped || !isMQTTEnabled()) return;
|
|
2175
|
+
teardownClient();
|
|
2130
2176
|
var url = buildMQTTBrokerUrl();
|
|
2131
2177
|
status = "connecting";
|
|
2132
2178
|
var clientId = "stormcloud-vp-".concat(Math.random().toString(36).slice(2, 9));
|
|
@@ -2135,41 +2181,48 @@ function initMQTTClient() {
|
|
|
2135
2181
|
clientId: clientId,
|
|
2136
2182
|
username: mqttConfig.username,
|
|
2137
2183
|
password: mqttConfig.password,
|
|
2138
|
-
keepalive:
|
|
2184
|
+
keepalive: KEEPALIVE_SECONDS,
|
|
2139
2185
|
clean: true,
|
|
2140
|
-
reconnectPeriod:
|
|
2141
|
-
connectTimeout:
|
|
2142
|
-
queueQoSZero: false
|
|
2186
|
+
reconnectPeriod: 0,
|
|
2187
|
+
connectTimeout: CONNECT_TIMEOUT_MS,
|
|
2188
|
+
queueQoSZero: false,
|
|
2189
|
+
reschedulePings: true
|
|
2143
2190
|
});
|
|
2144
2191
|
} catch (err) {
|
|
2145
2192
|
status = "error";
|
|
2146
2193
|
console.warn("".concat(LOG, " connect() threw:"), err);
|
|
2194
|
+
scheduleReconnect();
|
|
2147
2195
|
return;
|
|
2148
2196
|
}
|
|
2149
2197
|
client.on("connect", function() {
|
|
2150
2198
|
status = "connected";
|
|
2199
|
+
reconnectAttempts = 0;
|
|
2200
|
+
clearReconnectTimer();
|
|
2151
2201
|
console.info("".concat(LOG, " connected to ").concat(url));
|
|
2152
2202
|
});
|
|
2153
|
-
client.on("reconnect", function() {
|
|
2154
|
-
status = "connecting";
|
|
2155
|
-
console.info("".concat(LOG, " reconnecting…"));
|
|
2156
|
-
});
|
|
2157
2203
|
client.on("offline", function() {
|
|
2158
|
-
status = "disconnected";
|
|
2204
|
+
if (status === "connected") status = "disconnected";
|
|
2159
2205
|
console.warn("".concat(LOG, " offline"));
|
|
2206
|
+
scheduleReconnect();
|
|
2160
2207
|
});
|
|
2161
2208
|
client.on("error", function(err) {
|
|
2162
2209
|
status = "error";
|
|
2163
2210
|
console.warn("".concat(LOG, " error:"), err.message);
|
|
2211
|
+
scheduleReconnect();
|
|
2164
2212
|
});
|
|
2165
2213
|
client.on("close", function() {
|
|
2166
|
-
if (status === "connected")
|
|
2167
|
-
|
|
2168
|
-
}
|
|
2214
|
+
if (status === "connected") status = "disconnected";
|
|
2215
|
+
scheduleReconnect();
|
|
2169
2216
|
});
|
|
2170
2217
|
}
|
|
2218
|
+
function initMQTTClient() {
|
|
2219
|
+
if (client || !isMQTTEnabled()) return;
|
|
2220
|
+
stopped = false;
|
|
2221
|
+
reconnectAttempts = 0;
|
|
2222
|
+
openConnection();
|
|
2223
|
+
}
|
|
2171
2224
|
function ensureMQTTClient() {
|
|
2172
|
-
if (isMQTTEnabled() && !client) {
|
|
2225
|
+
if (isMQTTEnabled() && !client && !reconnectTimer) {
|
|
2173
2226
|
initMQTTClient();
|
|
2174
2227
|
}
|
|
2175
2228
|
}
|
|
@@ -2178,7 +2231,7 @@ function publishMQTT(topic, payload) {
|
|
|
2178
2231
|
return false;
|
|
2179
2232
|
}
|
|
2180
2233
|
ensureMQTTClient();
|
|
2181
|
-
if (!client) {
|
|
2234
|
+
if (!client || !client.connected) {
|
|
2182
2235
|
return false;
|
|
2183
2236
|
}
|
|
2184
2237
|
try {
|
|
@@ -2192,11 +2245,11 @@ function publishMQTT(topic, payload) {
|
|
|
2192
2245
|
}
|
|
2193
2246
|
}
|
|
2194
2247
|
function disconnectMQTT() {
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2248
|
+
stopped = true;
|
|
2249
|
+
clearReconnectTimer();
|
|
2250
|
+
teardownClient();
|
|
2251
|
+
reconnectAttempts = 0;
|
|
2252
|
+
status = "disconnected";
|
|
2200
2253
|
}
|
|
2201
2254
|
// src/utils/vastEnvironmentSignals.ts
|
|
2202
2255
|
var AIRY_ANDROID_APP_ID = "com.freeairytv.android";
|