added tls fallback and auto pause in log window
This commit is contained in:
+16
-5
@@ -25,6 +25,7 @@ const GATEWAY_TOKEN = process.env.ARIA_AUTH_TOKEN || "";
|
||||
const RVS_HOST = process.env.RVS_HOST || "";
|
||||
const RVS_PORT = process.env.RVS_PORT || "443";
|
||||
const RVS_TLS = process.env.RVS_TLS || "true";
|
||||
const RVS_TLS_FALLBACK = process.env.RVS_TLS_FALLBACK || "true";
|
||||
const RVS_TOKEN = process.env.RVS_TOKEN || "";
|
||||
|
||||
// ── State ───────────────────────────────────────────────
|
||||
@@ -258,7 +259,7 @@ function sendToGateway(text) {
|
||||
|
||||
// ── RVS Verbindung (optional) ───────────────────────────
|
||||
|
||||
function connectRVS() {
|
||||
function connectRVS(forcePlain) {
|
||||
if (!RVS_HOST || !RVS_TOKEN) {
|
||||
log("info", "rvs", "Nicht konfiguriert — ueberspringe");
|
||||
state.rvs.status = "not_configured";
|
||||
@@ -266,7 +267,9 @@ function connectRVS() {
|
||||
return;
|
||||
}
|
||||
|
||||
const proto = RVS_TLS === "true" ? "wss" : "ws";
|
||||
// TLS-Logik: wss zuerst, bei Fehler Fallback auf ws (wenn erlaubt)
|
||||
const useTls = RVS_TLS === "true" && !forcePlain;
|
||||
const proto = useTls ? "wss" : "ws";
|
||||
const url = `${proto}://${RVS_HOST}:${RVS_PORT}?token=${RVS_TOKEN}`;
|
||||
|
||||
state.rvs.status = "connecting";
|
||||
@@ -276,7 +279,7 @@ function connectRVS() {
|
||||
const ws = new WebSocket(url);
|
||||
|
||||
ws.on("open", () => {
|
||||
log("info", "rvs", "Verbunden");
|
||||
log("info", "rvs", `Verbunden (${proto})`);
|
||||
state.rvs.status = "connected";
|
||||
state.rvs.lastError = null;
|
||||
rvsWs = ws;
|
||||
@@ -302,13 +305,21 @@ function connectRVS() {
|
||||
state.rvs.status = "disconnected";
|
||||
rvsWs = null;
|
||||
broadcastState();
|
||||
setTimeout(connectRVS, 5000);
|
||||
setTimeout(() => connectRVS(), 5000);
|
||||
});
|
||||
|
||||
ws.on("error", (err) => {
|
||||
log("error", "rvs", `Fehler: ${err.message}`);
|
||||
log("error", "rvs", `Fehler (${proto}): ${err.message}`);
|
||||
state.rvs.lastError = err.message;
|
||||
broadcastState();
|
||||
|
||||
// TLS Fallback: wenn wss fehlschlaegt und Fallback erlaubt → ws versuchen
|
||||
if (useTls && RVS_TLS_FALLBACK === "true") {
|
||||
log("warn", "rvs", "TLS fehlgeschlagen — Fallback auf ws://");
|
||||
ws.removeAllListeners();
|
||||
try { ws.close(); } catch (_) {}
|
||||
connectRVS(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user