n8n-nodes-chat2crm 0.1.15 → 0.1.16
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.
|
@@ -97,13 +97,23 @@ class Chat2CrmTrigger {
|
|
|
97
97
|
const redisConnections = new Map();
|
|
98
98
|
for (const db of streamsByDb.keys()) {
|
|
99
99
|
// Создаем отдельное соединение для каждой базы данных
|
|
100
|
+
// ВАЖНО: Каждое соединение уже настроено на свою базу данных через параметр db
|
|
100
101
|
const redis = await RedisConnection_1.createRedisConnection.call(this, credentials, db);
|
|
101
102
|
redisConnections.set(db, redis);
|
|
102
|
-
// ДИАГНОСТИКА:
|
|
103
|
+
// ДИАГНОСТИКА: Сразу после создания соединения проверяем stream'ы
|
|
103
104
|
try {
|
|
104
|
-
// Проверяем все ключи сразу после подключения
|
|
105
105
|
const testKeys = await redis.keys('*');
|
|
106
|
-
console.log(`[Chat2Crm Trigger]
|
|
106
|
+
console.log(`[Chat2Crm Trigger] Keys in DB ${db} immediately after connection:`, testKeys);
|
|
107
|
+
// Проверяем конкретно N8N_INCOMING_MESSAGE
|
|
108
|
+
if (streamsByDb.get(db)?.includes('N8N_INCOMING_MESSAGE')) {
|
|
109
|
+
try {
|
|
110
|
+
const testInfo = await redis.xinfo('STREAM', 'N8N_INCOMING_MESSAGE');
|
|
111
|
+
console.log(`[Chat2Crm Trigger] N8N_INCOMING_MESSAGE found immediately after connection!`, testInfo);
|
|
112
|
+
}
|
|
113
|
+
catch (e) {
|
|
114
|
+
console.error(`[Chat2Crm Trigger] N8N_INCOMING_MESSAGE NOT found immediately after connection:`, e.message);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
107
117
|
}
|
|
108
118
|
catch (error) {
|
|
109
119
|
console.error(`[Chat2Crm Trigger] Error checking keys in DB ${db}:`, error.message);
|
|
@@ -120,6 +130,18 @@ class Chat2CrmTrigger {
|
|
|
120
130
|
try {
|
|
121
131
|
const selectResult = await redis.select(db);
|
|
122
132
|
console.log(`[Chat2Crm Trigger] SELECT ${db} result:`, selectResult);
|
|
133
|
+
// ДИАГНОСТИКА: Проверяем текущую базу данных через CLIENT INFO или другой способ
|
|
134
|
+
// Попробуем напрямую проверить stream после SELECT
|
|
135
|
+
for (const stream of dbStreams) {
|
|
136
|
+
try {
|
|
137
|
+
console.log(`[Chat2Crm Trigger] Direct XINFO check for "${stream}" immediately after SELECT ${db}`);
|
|
138
|
+
const directInfo = await redis.xinfo('STREAM', stream);
|
|
139
|
+
console.log(`[Chat2Crm Trigger] Direct XINFO SUCCESS for "${stream}":`, directInfo);
|
|
140
|
+
}
|
|
141
|
+
catch (directError) {
|
|
142
|
+
console.error(`[Chat2Crm Trigger] Direct XINFO FAILED for "${stream}":`, directError.message);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
123
145
|
// ДИАГНОСТИКА: Проверяем все stream'ы через SCAN
|
|
124
146
|
const streamKeys = [];
|
|
125
147
|
let cursor = '0';
|
|
@@ -135,6 +157,24 @@ class Chat2CrmTrigger {
|
|
|
135
157
|
} while (cursor !== '0');
|
|
136
158
|
console.log(`[Chat2Crm Trigger] Found ${streamKeys.length} streams in DB ${db}:`, streamKeys);
|
|
137
159
|
console.log(`[Chat2Crm Trigger] Looking for:`, dbStreams);
|
|
160
|
+
// ДИАГНОСТИКА: Проверяем конкретно N8N_INCOMING_MESSAGE через разные методы
|
|
161
|
+
if (dbStreams.includes('N8N_INCOMING_MESSAGE')) {
|
|
162
|
+
console.log(`[Chat2Crm Trigger] Special check for N8N_INCOMING_MESSAGE in DB ${db}`);
|
|
163
|
+
try {
|
|
164
|
+
const exists = await redis.exists('N8N_INCOMING_MESSAGE');
|
|
165
|
+
console.log(`[Chat2Crm Trigger] EXISTS check for N8N_INCOMING_MESSAGE:`, exists);
|
|
166
|
+
}
|
|
167
|
+
catch (e) {
|
|
168
|
+
console.error(`[Chat2Crm Trigger] EXISTS check failed:`, e.message);
|
|
169
|
+
}
|
|
170
|
+
try {
|
|
171
|
+
const type = await redis.type('N8N_INCOMING_MESSAGE');
|
|
172
|
+
console.log(`[Chat2Crm Trigger] TYPE check for N8N_INCOMING_MESSAGE:`, type);
|
|
173
|
+
}
|
|
174
|
+
catch (e) {
|
|
175
|
+
console.error(`[Chat2Crm Trigger] TYPE check failed:`, e.message);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
138
178
|
}
|
|
139
179
|
catch (error) {
|
|
140
180
|
console.error(`[Chat2Crm Trigger] Failed to select DB ${db}:`, error.message);
|
|
@@ -172,7 +172,7 @@ async function createRedisConnection(credentials, db = 0) {
|
|
|
172
172
|
const redis = new ioredis_1.default({
|
|
173
173
|
host: redisHost,
|
|
174
174
|
port: redisPort,
|
|
175
|
-
db: selectedDb,
|
|
175
|
+
db: selectedDb,
|
|
176
176
|
password: credentials.password,
|
|
177
177
|
enableReadyCheck: true,
|
|
178
178
|
maxRetriesPerRequest: 3,
|
|
@@ -182,6 +182,18 @@ async function createRedisConnection(credentials, db = 0) {
|
|
|
182
182
|
return delay;
|
|
183
183
|
},
|
|
184
184
|
});
|
|
185
|
+
// Ждем подключения и явно выбираем базу данных
|
|
186
|
+
await new Promise((resolve, reject) => {
|
|
187
|
+
redis.once('ready', () => {
|
|
188
|
+
resolve();
|
|
189
|
+
});
|
|
190
|
+
redis.once('error', (err) => {
|
|
191
|
+
reject(err);
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
// Явно выбираем базу данных после подключения
|
|
195
|
+
await redis.select(selectedDb);
|
|
196
|
+
console.log(`[Redis Connection] Explicitly selected DB ${selectedDb} after connection`);
|
|
185
197
|
// Добавляем обработчики событий для диагностики
|
|
186
198
|
redis.on('connect', () => {
|
|
187
199
|
console.log(`[Redis Connection] Connected to Redis at ${redisHost}:${redisPort}, DB ${selectedDb}`);
|