signalk-aiscast 0.1.0 → 0.1.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/dist/index.js +53 -15
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -7,7 +7,9 @@ import { Uplink } from "./uplink.js";
|
|
|
7
7
|
export const PLUGIN_ID = "signalk-aiscast";
|
|
8
8
|
const DEFAULT_SERVER = "https://ais.openwaters.io";
|
|
9
9
|
const STATUS_EVERY = 5_000;
|
|
10
|
-
const TOKEN_CHECK_EVERY = 6 * 3600_000;
|
|
10
|
+
const TOKEN_CHECK_EVERY = 6 * 3600_000; // with a token: renew a few days before expiry
|
|
11
|
+
const TOKEN_RETRY_MIN = 60_000; // without one (network not up yet at boot, server down): retry soon, backing off
|
|
12
|
+
const TOKEN_RETRY_MAX = 30 * 60_000;
|
|
11
13
|
export default function (app) {
|
|
12
14
|
const events = app;
|
|
13
15
|
let generation = 0; // bumped by stop(); a start() still in its awaits checks it and gives up
|
|
@@ -112,6 +114,17 @@ export default function (app) {
|
|
|
112
114
|
return;
|
|
113
115
|
let token = null;
|
|
114
116
|
let publishRefused = false;
|
|
117
|
+
let errorShown = false; // the server keeps a plugin's last error on the Dashboard until the status entry is reset
|
|
118
|
+
const reportError = (msg) => {
|
|
119
|
+
errorShown = true;
|
|
120
|
+
app.setPluginError(msg);
|
|
121
|
+
};
|
|
122
|
+
const clearError = () => {
|
|
123
|
+
if (!errorShown)
|
|
124
|
+
return;
|
|
125
|
+
errorShown = false;
|
|
126
|
+
app.setPluginStatus(""); // an empty status deletes the entry, lastError included
|
|
127
|
+
};
|
|
115
128
|
const selfSource = `v1:ed25519:${identity.pubkey}`;
|
|
116
129
|
const refreshToken = async () => {
|
|
117
130
|
if (configuredToken) {
|
|
@@ -125,10 +138,11 @@ export default function (app) {
|
|
|
125
138
|
}
|
|
126
139
|
try {
|
|
127
140
|
token = await loadToken(dir, server, identity.pubkey);
|
|
141
|
+
clearError();
|
|
128
142
|
}
|
|
129
143
|
catch (err) {
|
|
130
144
|
token = null;
|
|
131
|
-
|
|
145
|
+
reportError(`No token: ${describe(err)}. Receiving only; nothing is shared. Retrying.`);
|
|
132
146
|
}
|
|
133
147
|
};
|
|
134
148
|
await refreshToken();
|
|
@@ -147,12 +161,14 @@ export default function (app) {
|
|
|
147
161
|
const canShare = () => token !== null && !publishRefused && (shareTargets || shareOwn);
|
|
148
162
|
up.enabled = canShare();
|
|
149
163
|
l.on("open", () => {
|
|
164
|
+
if (publishRefused)
|
|
165
|
+
clearError();
|
|
150
166
|
publishRefused = false;
|
|
151
167
|
up.enabled = canShare();
|
|
152
168
|
});
|
|
153
169
|
l.on("error", (message) => {
|
|
154
170
|
if (/token/i.test(message) && !/publish/.test(message)) {
|
|
155
|
-
|
|
171
|
+
reportError(`aiscast refused the token: ${message}`);
|
|
156
172
|
if (!configuredToken) {
|
|
157
173
|
const refused = token?.token;
|
|
158
174
|
// A fresh token reconnects at once; the same token again waits out the refusal backoff.
|
|
@@ -169,10 +185,10 @@ export default function (app) {
|
|
|
169
185
|
else if (/publish/.test(message)) {
|
|
170
186
|
publishRefused = true;
|
|
171
187
|
up.enabled = false;
|
|
172
|
-
|
|
188
|
+
reportError(`aiscast refused publishing: ${message}`);
|
|
173
189
|
}
|
|
174
190
|
else if (/bbox/.test(message)) {
|
|
175
|
-
|
|
191
|
+
reportError(`aiscast refused the subscription: ${message} (reduce the radius)`);
|
|
176
192
|
}
|
|
177
193
|
else {
|
|
178
194
|
log(`aiscast: ${message}`);
|
|
@@ -208,6 +224,30 @@ export default function (app) {
|
|
|
208
224
|
};
|
|
209
225
|
events.on("nmea0183", onNmea);
|
|
210
226
|
events.on("N2KAnalyzerOut", onN2k);
|
|
227
|
+
// Token check: every 6 h once we have one; 1 → 30 min backoff while we don't.
|
|
228
|
+
let tokenTimer = null;
|
|
229
|
+
let tokenRetry = TOKEN_RETRY_MIN;
|
|
230
|
+
const scheduleTokenCheck = (delay) => {
|
|
231
|
+
tokenTimer = setTimeout(() => {
|
|
232
|
+
const before = token?.token;
|
|
233
|
+
refreshToken()
|
|
234
|
+
.catch((err) => log(`token refresh: ${describe(err)}`))
|
|
235
|
+
.then(() => {
|
|
236
|
+
up.enabled = canShare();
|
|
237
|
+
if (token?.token !== before)
|
|
238
|
+
l.reconnect();
|
|
239
|
+
if (token) {
|
|
240
|
+
tokenRetry = TOKEN_RETRY_MIN;
|
|
241
|
+
scheduleTokenCheck(TOKEN_CHECK_EVERY);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
tokenRetry = Math.min(TOKEN_RETRY_MAX, tokenRetry * 2);
|
|
245
|
+
scheduleTokenCheck(tokenRetry);
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
}, delay);
|
|
249
|
+
};
|
|
250
|
+
scheduleTokenCheck(token ? TOKEN_CHECK_EVERY : TOKEN_RETRY_MIN);
|
|
211
251
|
let lastSent = 0;
|
|
212
252
|
let lastAt = Date.now();
|
|
213
253
|
const timers = [
|
|
@@ -232,20 +272,12 @@ export default function (app) {
|
|
|
232
272
|
: "reconnecting";
|
|
233
273
|
app.setPluginStatus(`key ${key}… ${upText} ${downText} ${linkText}`);
|
|
234
274
|
}, STATUS_EVERY),
|
|
235
|
-
setInterval(() => {
|
|
236
|
-
const before = token?.token;
|
|
237
|
-
refreshToken()
|
|
238
|
-
.then(() => {
|
|
239
|
-
up.enabled = canShare();
|
|
240
|
-
if (token?.token !== before)
|
|
241
|
-
l.reconnect();
|
|
242
|
-
})
|
|
243
|
-
.catch((err) => log(`token refresh: ${err.message}`));
|
|
244
|
-
}, TOKEN_CHECK_EVERY),
|
|
245
275
|
];
|
|
246
276
|
teardown = async () => {
|
|
247
277
|
for (const t of timers)
|
|
248
278
|
clearInterval(t);
|
|
279
|
+
if (tokenTimer)
|
|
280
|
+
clearTimeout(tokenTimer);
|
|
249
281
|
events.removeListener("nmea0183", onNmea);
|
|
250
282
|
events.removeListener("N2KAnalyzerOut", onN2k);
|
|
251
283
|
down.stop();
|
|
@@ -260,4 +292,10 @@ export default function (app) {
|
|
|
260
292
|
}
|
|
261
293
|
return plugin;
|
|
262
294
|
}
|
|
295
|
+
// fetch's "fetch failed" hides the real reason (ECONNREFUSED, ENOTFOUND, a TLS error) in `cause`.
|
|
296
|
+
function describe(err) {
|
|
297
|
+
const e = err;
|
|
298
|
+
const cause = e.cause?.code ?? e.cause?.message;
|
|
299
|
+
return cause ? `${e.message} (${cause})` : (e.message ?? String(err));
|
|
300
|
+
}
|
|
263
301
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAoB,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,WAAW,EACX,YAAY,EACZ,SAAS,GAEV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAC3C,MAAM,cAAc,GAAG,2BAA2B,CAAC;AACnD,MAAM,YAAY,GAAG,KAAK,CAAC;AAC3B,MAAM,iBAAiB,GAAG,CAAC,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "signalk-aiscast",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Share the AIS your receiver hears with aiscast, and pull nearby traffic from it when you have no receiver.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Brandon Keepers <brandon@opensoul.org>",
|