@botschat/botschat 0.1.14 → 0.1.15
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/src/ws-client.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-client.d.ts","sourceRoot":"","sources":["../../src/ws-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACpC,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,GAAG,CAAC,EAAE;QACJ,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAC5B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;KAC9B,CAAC;CACH,CAAC;
|
|
1
|
+
{"version":3,"file":"ws-client.d.ts","sourceRoot":"","sources":["../../src/ws-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACpC,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,GAAG,CAAC,EAAE;QACJ,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAC5B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;KAC9B,CAAC;CACH,CAAC;AAOF;;;;;;;;;GASG;AACH,qBAAa,mBAAmB;IAWlB,OAAO,CAAC,IAAI;IAVxB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,UAAU,CAAS;IACpB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAQ;IACjC,aAAa,UAAS;gBAET,IAAI,EAAE,0BAA0B;IAEpD,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,6CAA6C;IAC7C,OAAO,IAAI,IAAI;IAgFf,4CAA4C;IAC5C,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAQ9B,6BAA6B;IAC7B,UAAU,IAAI,IAAI;YAoBJ,aAAa;IAyC3B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,GAAG;CAMZ"}
|
package/dist/src/ws-client.js
CHANGED
|
@@ -2,6 +2,8 @@ import WebSocket from "ws";
|
|
|
2
2
|
import { deriveKey } from "./e2e-crypto.js";
|
|
3
3
|
const MIN_BACKOFF_MS = 1_000;
|
|
4
4
|
const MAX_BACKOFF_MS = 30_000;
|
|
5
|
+
/** Custom close code: server replaced this connection with a newer one. */
|
|
6
|
+
const CLOSE_REPLACED = 4009;
|
|
5
7
|
/**
|
|
6
8
|
* Manages a persistent outbound WebSocket connection from the OpenClaw
|
|
7
9
|
* plugin to the BotsChat cloud (ConnectionDO on Cloudflare).
|
|
@@ -17,6 +19,7 @@ export class BotsChatCloudClient {
|
|
|
17
19
|
ws = null;
|
|
18
20
|
reconnectTimer = null;
|
|
19
21
|
pingTimer = null;
|
|
22
|
+
backoffResetTimer = null;
|
|
20
23
|
backoffMs = MIN_BACKOFF_MS;
|
|
21
24
|
intentionalClose = false;
|
|
22
25
|
_connected = false;
|
|
@@ -70,13 +73,36 @@ export class BotsChatCloudClient {
|
|
|
70
73
|
this.log("warn", `WebSocket closed: code=${code} reason=${reason?.toString() ?? ""}`);
|
|
71
74
|
this.setConnected(false);
|
|
72
75
|
this.stopPing();
|
|
76
|
+
if (this.backoffResetTimer) {
|
|
77
|
+
clearTimeout(this.backoffResetTimer);
|
|
78
|
+
this.backoffResetTimer = null;
|
|
79
|
+
}
|
|
80
|
+
if (code === CLOSE_REPLACED) {
|
|
81
|
+
this.log("info", "Connection replaced by server — not reconnecting");
|
|
82
|
+
this.intentionalClose = true;
|
|
83
|
+
}
|
|
73
84
|
if (!this.intentionalClose) {
|
|
74
85
|
this.scheduleReconnect();
|
|
75
86
|
}
|
|
76
87
|
});
|
|
88
|
+
// Detect HTTP-level rejections before the WebSocket is established.
|
|
89
|
+
// Node ws emits 'unexpected-response' when the server returns non-101.
|
|
90
|
+
this.ws.on("unexpected-response", (_req, res) => {
|
|
91
|
+
const status = res?.statusCode ?? 0;
|
|
92
|
+
const retryAfter = parseInt(res?.headers?.["retry-after"] ?? "0", 10);
|
|
93
|
+
if (status === 429 && retryAfter > 0) {
|
|
94
|
+
this.log("warn", `Rate-limited (429), backing off ${retryAfter}s`);
|
|
95
|
+
this.backoffMs = retryAfter * 1000;
|
|
96
|
+
}
|
|
97
|
+
else if (status === 503) {
|
|
98
|
+
const secs = retryAfter || 300;
|
|
99
|
+
this.log("warn", `Service unavailable (503), backing off ${secs}s`);
|
|
100
|
+
this.backoffMs = secs * 1000;
|
|
101
|
+
}
|
|
102
|
+
// ws will emit 'close' after this, triggering scheduleReconnect
|
|
103
|
+
});
|
|
77
104
|
this.ws.on("error", (err) => {
|
|
78
105
|
this.log("error", `WebSocket error: ${err.message}`);
|
|
79
|
-
// The "close" event will fire after this, triggering reconnect
|
|
80
106
|
});
|
|
81
107
|
}
|
|
82
108
|
/** Send a message to the BotsChat cloud. */
|
|
@@ -95,6 +121,10 @@ export class BotsChatCloudClient {
|
|
|
95
121
|
clearTimeout(this.reconnectTimer);
|
|
96
122
|
this.reconnectTimer = null;
|
|
97
123
|
}
|
|
124
|
+
if (this.backoffResetTimer) {
|
|
125
|
+
clearTimeout(this.backoffResetTimer);
|
|
126
|
+
this.backoffResetTimer = null;
|
|
127
|
+
}
|
|
98
128
|
if (this.ws) {
|
|
99
129
|
this.ws.close(1000, "shutdown");
|
|
100
130
|
this.ws = null;
|
|
@@ -106,9 +136,16 @@ export class BotsChatCloudClient {
|
|
|
106
136
|
switch (msg.type) {
|
|
107
137
|
case "auth.ok":
|
|
108
138
|
this.log("info", `Authenticated with BotsChat cloud (userId=${msg.userId}, hasE2ePwd=${!!this.opts.e2ePassword})`);
|
|
109
|
-
//
|
|
110
|
-
//
|
|
111
|
-
|
|
139
|
+
// Delay backoff reset: only reset to MIN after the connection has
|
|
140
|
+
// been stable for 10s. If the connection drops immediately (e.g.
|
|
141
|
+
// server-side replacement), we keep the current backoff to avoid
|
|
142
|
+
// a fast reconnect loop.
|
|
143
|
+
if (this.backoffResetTimer)
|
|
144
|
+
clearTimeout(this.backoffResetTimer);
|
|
145
|
+
this.backoffResetTimer = setTimeout(() => {
|
|
146
|
+
this.backoffMs = MIN_BACKOFF_MS;
|
|
147
|
+
this.backoffResetTimer = null;
|
|
148
|
+
}, 10_000);
|
|
112
149
|
this.setConnected(true);
|
|
113
150
|
this.startPing();
|
|
114
151
|
// Derive E2E key AFTER marking connected (PBKDF2 is slow ~1-2s).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../../src/ws-client.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAoB5C,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,MAAM,cAAc,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../../src/ws-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED