Fix bug for resub function

Signed-off-by: Yonle <yonle@lecturify.net>
This commit is contained in:
Yonle
2023-10-31 15:22:39 +07:00
parent 8370bf2cd7
commit 1cfe76269c
2 changed files with 8 additions and 8 deletions

View File

@@ -9,7 +9,7 @@ const csess = new Map();
sess.unsafeMode(true); sess.unsafeMode(true);
// Temporary database. // Temporary database.
sess.exec("CREATE TABLE IF NOT EXISTS sess (cID TEXT, subID TEXT);"); sess.exec("CREATE TABLE IF NOT EXISTS sess (cID TEXT, subID TEXT, filter TEXT);");
sess.exec("CREATE TABLE IF NOT EXISTS events (cID TEXT, subID TEXT, eID TEXT);"); // To prevent transmitting duplicates sess.exec("CREATE TABLE IF NOT EXISTS events (cID TEXT, subID TEXT, eID TEXT);"); // To prevent transmitting duplicates
// CL - User socket // CL - User socket
@@ -36,7 +36,7 @@ module.exports = (ws, req) => {
data[1] = ws.id + ":" + data[1]; data[1] = ws.id + ":" + data[1];
// eventname -> 1_eventname // eventname -> 1_eventname
bc(data); bc(data);
sess.prepare("INSERT INTO sess VALUES (?, ?);").run(ws.id, data[1]); sess.prepare("INSERT INTO sess VALUES (?, ?, ?);").run(ws.id, data[1], JSON.stringify(data[2]));
ws.send(JSON.stringify(["EOSE", data[1]])); ws.send(JSON.stringify(["EOSE", data[1]]));
break; break;
case "CLOSE": case "CLOSE":
@@ -92,9 +92,9 @@ function newConn(addr) {
relay.on('open', _ => { relay.on('open', _ => {
socks.add(relay); // Add this socket session to [socks] socks.add(relay); // Add this socket session to [socks]
console.log(process.pid, "---", `[${socks.size}/${relays.length}]`, relay.addr, "is connected"); console.log(process.pid, "---", `[${socks.size}/${relays.length}]`, relay.addr, "is connected");
for (i of sess.prepare("SELECT subID FROM sess WHERE cID = ?;").iterate(id)) { for (i of sess.prepare("SELECT subID, filter FROM sess WHERE cID = ?;").iterate(id)) {
if (relay.readyState >= 2) break; if (relay.readyState >= 2) break;
relay.send(JSON.stringify(["REQ", i.subID])); relay.send(JSON.stringify(["REQ", i.subID, JSON.parse(i.filter)]));
} }
}); });

View File

@@ -9,7 +9,7 @@ const csess = new Map();
sess.unsafeMode(true); sess.unsafeMode(true);
// Temporary database. // Temporary database.
sess.exec("CREATE TABLE IF NOT EXISTS sess (cID TEXT, subID TEXT);"); sess.exec("CREATE TABLE IF NOT EXISTS sess (cID TEXT, subID TEXT, filter TEXT);");
sess.exec("CREATE TABLE IF NOT EXISTS events (cID TEXT, subID TEXT, eID TEXT);"); // To prevent transmitting duplicates sess.exec("CREATE TABLE IF NOT EXISTS events (cID TEXT, subID TEXT, eID TEXT);"); // To prevent transmitting duplicates
// CL - User socket // CL - User socket
@@ -37,7 +37,7 @@ module.exports = (ws, req) => {
if (typeof(data[2]) !== "object") return ws.send(JSON.stringify(["NOTICE", "expected filter to be obj, instead gives the otherwise."])); if (typeof(data[2]) !== "object") return ws.send(JSON.stringify(["NOTICE", "expected filter to be obj, instead gives the otherwise."]));
// eventname -> 1_eventname // eventname -> 1_eventname
bc(data, ws.id); bc(data, ws.id);
sess.prepare("INSERT INTO sess VALUES (?, ?);").run(ws.id, data[1]); sess.prepare("INSERT INTO sess VALUES (?, ?, ?);").run(ws.id, data[1], JSON.stringify(data[2]));
ws.send(JSON.stringify(["EOSE", data[1]])); ws.send(JSON.stringify(["EOSE", data[1]]));
break; break;
case "CLOSE": case "CLOSE":
@@ -107,9 +107,9 @@ function newConn(addr, id) {
relay.on('open', _ => { relay.on('open', _ => {
socks.add(relay); // Add this socket session to [socks] socks.add(relay); // Add this socket session to [socks]
console.log(process.pid, "---", `[${id}] [${socks.size}/${relays.length}]`, relay.addr, "is connected"); console.log(process.pid, "---", `[${id}] [${socks.size}/${relays.length}]`, relay.addr, "is connected");
for (i of sess.prepare("SELECT subID FROM sess WHERE cID = ?;").iterate(id)) { for (i of sess.prepare("SELECT subID, filter FROM sess WHERE cID = ?;").iterate(id)) {
if (relay.readyState >= 2) break; if (relay.readyState >= 2) break;
relay.send(JSON.stringify(["REQ", i.subID])); relay.send(JSON.stringify(["REQ", i.subID, JSON.parse(i.filter)]));
} }
}); });