Deploy: 2026-06-24 15:43:12
This commit is contained in:
@@ -74,6 +74,7 @@ async function startSession(session_key, webhook_url) {
|
|||||||
msgRetryCounterCache,
|
msgRetryCounterCache,
|
||||||
markOnlineOnConnect: true,
|
markOnlineOnConnect: true,
|
||||||
syncFullHistory: true,
|
syncFullHistory: true,
|
||||||
|
keepAliveIntervalMs: 30000,
|
||||||
getMessage: async (key) => {
|
getMessage: async (key) => {
|
||||||
const compoundKey = `${key.remoteJid}:${key.id}`;
|
const compoundKey = `${key.remoteJid}:${key.id}`;
|
||||||
return recentMessages.get(compoundKey) || recentMessages.get(key.id);
|
return recentMessages.get(compoundKey) || recentMessages.get(key.id);
|
||||||
@@ -90,21 +91,21 @@ async function startSession(session_key, webhook_url) {
|
|||||||
|
|
||||||
// Listen for incoming messages
|
// Listen for incoming messages
|
||||||
sock.ev.on('messages.upsert', async (m) => {
|
sock.ev.on('messages.upsert', async (m) => {
|
||||||
console.log(`[Upsert] Event received type=${m.type} messagesCount=${m.messages?.length}`);
|
|
||||||
if (m.messages && m.messages.length > 0) {
|
if (m.messages && m.messages.length > 0) {
|
||||||
console.log(`[Upsert] First message keys:`, Object.keys(m.messages[0]));
|
console.log(`[Upsert] type=${m.type} count=${m.messages.length}`);
|
||||||
console.log(`[Upsert] First message key:`, JSON.stringify(m.messages[0].key));
|
|
||||||
console.log(`[Upsert] First message structure:`, JSON.stringify(m.messages[0].message));
|
|
||||||
|
|
||||||
// Cache all incoming messages to serve E2EE retries
|
|
||||||
for (const msg of m.messages) {
|
for (const msg of m.messages) {
|
||||||
if (msg.key && msg.key.id && msg.message) {
|
if (msg.key && msg.key.id && msg.key.remoteJid && msg.message) {
|
||||||
|
const compoundKey = `${msg.key.remoteJid}:${msg.key.id}`;
|
||||||
|
recentMessages.set(compoundKey, msg.message);
|
||||||
recentMessages.set(msg.key.id, msg.message);
|
recentMessages.set(msg.key.id, msg.message);
|
||||||
if (recentMessages.size > 2000) {
|
|
||||||
const firstKey = recentMessages.keys().next().value;
|
|
||||||
recentMessages.delete(firstKey);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (recentMessages.size > 5000) {
|
||||||
|
const keys = recentMessages.keys();
|
||||||
|
for (let i = 0; i < 1000; i++) {
|
||||||
|
const key = keys.next().value;
|
||||||
|
if (key) recentMessages.delete(key);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -418,10 +419,13 @@ async function sendMessage(session_key, phone, message, mediaUrl = null, audioBa
|
|||||||
|
|
||||||
// Cache outbound messages for E2EE decryption retries
|
// Cache outbound messages for E2EE decryption retries
|
||||||
// Use compound key (remoteJid:id) to match how Baileys queries getMessage
|
// Use compound key (remoteJid:id) to match how Baileys queries getMessage
|
||||||
if (sentMsg && sentMsg.key && sentMsg.key.id && sentMsg.message) {
|
if (sentMsg && sentMsg.key && sentMsg.key.id) {
|
||||||
|
const msgContent = sentMsg.message || (message ? { conversation: message } : null);
|
||||||
|
if (msgContent) {
|
||||||
const compoundKey = `${sentMsg.key.remoteJid}:${sentMsg.key.id}`;
|
const compoundKey = `${sentMsg.key.remoteJid}:${sentMsg.key.id}`;
|
||||||
recentMessages.set(compoundKey, sentMsg.message);
|
recentMessages.set(compoundKey, msgContent);
|
||||||
recentMessages.set(sentMsg.key.id, sentMsg.message);
|
recentMessages.set(sentMsg.key.id, msgContent);
|
||||||
|
}
|
||||||
if (recentMessages.size > 5000) {
|
if (recentMessages.size > 5000) {
|
||||||
const keys = recentMessages.keys();
|
const keys = recentMessages.keys();
|
||||||
for (let i = 0; i < 1000; i++) {
|
for (let i = 0; i < 1000; i++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user