@iobroker/db-states-jsonl 4.0.21 → 4.1.0-alpha.0-20220819-74ceeddc
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/build/index.d.ts +4 -0
- package/{index.js → build/index.js} +2 -0
- package/build/lib/states/statesInMemJsonlDB.d.ts +21 -0
- package/build/lib/states/statesInMemJsonlDB.d.ts.map +1 -0
- package/{lib → build/lib}/states/statesInMemJsonlDB.js +75 -57
- package/build/lib/states/statesInMemJsonlDB.js.map +1 -0
- package/build/lib/states/statesInMemServerClass.d.ts +9 -0
- package/build/lib/states/statesInMemServerClass.d.ts.map +1 -0
- package/{lib → build/lib}/states/statesInMemServerClass.js +1 -8
- package/build/lib/states/statesInMemServerClass.js.map +1 -0
- package/build/lib/states/statesInMemServerRedis.d.ts +67 -0
- package/build/lib/states/statesInMemServerRedis.d.ts.map +1 -0
- package/{lib → build/lib}/states/statesInMemServerRedis.js +104 -151
- package/build/lib/states/statesInMemServerRedis.js.map +1 -0
- package/package.json +13 -9
package/build/index.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export = StatesInMemoryJsonlDB;
|
|
2
|
+
declare const StatesInMemoryJsonlDB_base: typeof import("@iobroker/db-states-file/build/lib/states/statesInMemFileDB");
|
|
3
|
+
/**
|
|
4
|
+
* This class inherits InMemoryFileDB class and adds all relevant logic for states
|
|
5
|
+
* including the available methods for use by js-controller directly
|
|
6
|
+
**/
|
|
7
|
+
declare class StatesInMemoryJsonlDB extends StatesInMemoryJsonlDB_base {
|
|
8
|
+
constructor(settings: any);
|
|
9
|
+
/** @type {JsonlDB<any>} */
|
|
10
|
+
_db: JsonlDB<any>;
|
|
11
|
+
_backupInterval: NodeJS.Timer | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* Checks if an existing file DB should be migrated to JSONL
|
|
14
|
+
* @returns {Promise<boolean>} true if the file DB was migrated. false if not.
|
|
15
|
+
* If this returns true, the jsonl DB was opened and doesn't need to be opened again.
|
|
16
|
+
*/
|
|
17
|
+
_maybeMigrateFileDB(): Promise<boolean>;
|
|
18
|
+
saveBackup(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
import { JsonlDB } from "@alcalzone/jsonl-db";
|
|
21
|
+
//# sourceMappingURL=statesInMemJsonlDB.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statesInMemJsonlDB.d.ts","sourceRoot":"","sources":["../../../src/lib/states/statesInMemJsonlDB.js"],"names":[],"mappings":";;AA0GA;;;IAGI;AACJ;IACI,2BAgBC;IAFG,2BAA2B;IAC3B,KADW,QAAQ,GAAG,CAAC,CACiE;IA6CpF,0CAE+B;IAIvC;;;;OAIG;IACH,uBAHa,QAAQ,OAAO,CAAC,CAwE5B;IAOD,4BA2BC;CAYJ"}
|
|
@@ -6,21 +6,17 @@
|
|
|
6
6
|
* MIT License
|
|
7
7
|
*
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
9
|
/** @module StatesInMemoryFileDB */
|
|
11
|
-
|
|
12
10
|
/* jshint -W097 */
|
|
13
11
|
/* jshint strict:false */
|
|
14
12
|
/* jslint node: true */
|
|
15
13
|
'use strict';
|
|
16
|
-
|
|
17
|
-
const StatesInMemoryFileDB = require('@iobroker/db-states-file').StatesInMemoryFileDB;
|
|
14
|
+
const { StatesInMemoryFileDB } = require('@iobroker/db-states-file');
|
|
18
15
|
const { JsonlDB } = require('@alcalzone/jsonl-db');
|
|
19
16
|
const path = require('path');
|
|
20
17
|
const fs = require('fs');
|
|
21
18
|
const os = require('os');
|
|
22
19
|
const { tools } = require('@iobroker/js-controller-common');
|
|
23
|
-
|
|
24
20
|
// settings = {
|
|
25
21
|
// change: function (id, state) {},
|
|
26
22
|
// connected: function (nameOfServer) {},
|
|
@@ -41,7 +37,61 @@ const { tools } = require('@iobroker/js-controller-common');
|
|
|
41
37
|
// host: localhost
|
|
42
38
|
// };
|
|
43
39
|
//
|
|
44
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Normalizes options for the JsonlDB
|
|
42
|
+
* @param {Record<string, any> | undefined} conf The jsonlOptions options from iobroker.json
|
|
43
|
+
* @returns {import("@alcalzone/jsonl-db").JsonlDBOptions<any>}
|
|
44
|
+
*/
|
|
45
|
+
function normalizeJsonlOptions(conf = {}) {
|
|
46
|
+
/** @type {import("@alcalzone/jsonl-db").JsonlDBOptions<any>} */
|
|
47
|
+
const ret = {
|
|
48
|
+
autoCompress: {
|
|
49
|
+
sizeFactor: 10,
|
|
50
|
+
sizeFactorMinimumSize: 50000
|
|
51
|
+
},
|
|
52
|
+
ignoreReadErrors: true,
|
|
53
|
+
throttleFS: {
|
|
54
|
+
intervalMs: 60000,
|
|
55
|
+
maxBufferedCommands: 2000
|
|
56
|
+
},
|
|
57
|
+
lockfile: {
|
|
58
|
+
// 5 retries starting at 250ms add up to just above 2s,
|
|
59
|
+
// so the DB has 3 more seconds to load all data if it wants to stay within the 5s connectionTimeout
|
|
60
|
+
retries: 5,
|
|
61
|
+
retryMinTimeoutMs: 250,
|
|
62
|
+
// This makes sure the DB stays locked for maximum 2s even if the process crashes
|
|
63
|
+
staleMs: 2000
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
// Be really careful what we allow here. Incorrect settings may cause problems in production.
|
|
67
|
+
if (tools.isObject(conf.autoCompress)) {
|
|
68
|
+
const ac = conf.autoCompress;
|
|
69
|
+
// Letting the DB grow more than 100x is risky
|
|
70
|
+
if (typeof ac.sizeFactor === 'number' && ac.sizeFactor >= 2 && ac.sizeFactor <= 100) {
|
|
71
|
+
ret.autoCompress.sizeFactor = ac.sizeFactor;
|
|
72
|
+
}
|
|
73
|
+
// Also we should definitely compress once the DB has reached 200k lines or it might grow too big
|
|
74
|
+
if (typeof ac.sizeFactorMinimumSize === 'number' &&
|
|
75
|
+
ac.sizeFactorMinimumSize >= 0 &&
|
|
76
|
+
ac.sizeFactorMinimumSize <= 200000) {
|
|
77
|
+
ret.autoCompress.sizeFactorMinimumSize = ac.sizeFactorMinimumSize;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (tools.isObject(conf.throttleFS)) {
|
|
81
|
+
const thr = conf.throttleFS;
|
|
82
|
+
// Don't write more often than every second and write at least once every hour
|
|
83
|
+
if (typeof thr.intervalMs === 'number' && thr.intervalMs >= 1000 && thr.intervalMs <= 3600000) {
|
|
84
|
+
ret.throttleFS.intervalMs = thr.intervalMs;
|
|
85
|
+
}
|
|
86
|
+
// Don't keep too much in memory - 100k changes are more than enough
|
|
87
|
+
if (typeof thr.maxBufferedCommands === 'number' &&
|
|
88
|
+
thr.maxBufferedCommands >= 0 &&
|
|
89
|
+
thr.maxBufferedCommands <= 100000) {
|
|
90
|
+
ret.throttleFS.maxBufferedCommands = thr.maxBufferedCommands;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return ret;
|
|
94
|
+
}
|
|
45
95
|
/**
|
|
46
96
|
* This class inherits InMemoryFileDB class and adds all relevant logic for states
|
|
47
97
|
* including the available methods for use by js-controller directly
|
|
@@ -54,41 +104,18 @@ class StatesInMemoryJsonlDB extends StatesInMemoryFileDB {
|
|
|
54
104
|
fileName: 'states.json',
|
|
55
105
|
backupDirName: 'backup-objects'
|
|
56
106
|
};
|
|
57
|
-
|
|
58
|
-
/** @type {import("@alcalzone/jsonl-db").JsonlDBOptions<any>} */
|
|
59
|
-
const jsonlOptions = settings.connection.jsonlOptions || {
|
|
60
|
-
autoCompress: {
|
|
61
|
-
sizeFactor: 10,
|
|
62
|
-
sizeFactorMinimumSize: 50000
|
|
63
|
-
},
|
|
64
|
-
ignoreReadErrors: true,
|
|
65
|
-
throttleFS: {
|
|
66
|
-
intervalMs: 60000,
|
|
67
|
-
maxBufferedCommands: 2000
|
|
68
|
-
},
|
|
69
|
-
lockfile: {
|
|
70
|
-
// 5 retries starting at 250ms add up to just above 2s,
|
|
71
|
-
// so the DB has 3 more seconds to load all data if it wants to stay within the 5s connectionTimeout
|
|
72
|
-
retries: 5,
|
|
73
|
-
retryMinTimeoutMs: 250,
|
|
74
|
-
// This makes sure the DB stays locked for maximum 2s even if the process crashes
|
|
75
|
-
staleMs: 2000
|
|
76
|
-
}
|
|
77
|
-
};
|
|
107
|
+
const jsonlOptions = normalizeJsonlOptions(settings.connection.jsonlOptions);
|
|
78
108
|
settings.jsonlDB = {
|
|
79
109
|
fileName: 'states.jsonl'
|
|
80
110
|
};
|
|
81
111
|
super(settings);
|
|
82
|
-
|
|
83
112
|
/** @type {JsonlDB<any>} */
|
|
84
113
|
this._db = new JsonlDB(path.join(this.dataDir, settings.jsonlDB.fileName), jsonlOptions);
|
|
85
114
|
}
|
|
86
|
-
|
|
87
115
|
async open() {
|
|
88
116
|
if (!(await this._maybeMigrateFileDB())) {
|
|
89
117
|
await this._db.open();
|
|
90
118
|
}
|
|
91
|
-
|
|
92
119
|
// Create an object-like wrapper around the internal Map
|
|
93
120
|
this.dataset = new Proxy(this._db, {
|
|
94
121
|
/** @param {any} prop */
|
|
@@ -124,14 +151,12 @@ class StatesInMemoryJsonlDB extends StatesInMemoryFileDB {
|
|
|
124
151
|
};
|
|
125
152
|
}
|
|
126
153
|
});
|
|
127
|
-
|
|
128
154
|
if (this.settings.backup && this.settings.backup.period && !this.settings.backup.disabled) {
|
|
129
155
|
this._backupInterval = setInterval(() => {
|
|
130
156
|
this.saveBackup();
|
|
131
157
|
}, this.settings.backup.period);
|
|
132
158
|
}
|
|
133
159
|
}
|
|
134
|
-
|
|
135
160
|
/**
|
|
136
161
|
* Checks if an existing file DB should be migrated to JSONL
|
|
137
162
|
* @returns {Promise<boolean>} true if the file DB was migrated. false if not.
|
|
@@ -141,7 +166,6 @@ class StatesInMemoryJsonlDB extends StatesInMemoryFileDB {
|
|
|
141
166
|
const jsonlFileName = path.join(this.dataDir, this.settings.jsonlDB.fileName);
|
|
142
167
|
const jsonFileName = path.join(this.dataDir, this.settings.fileDB.fileName);
|
|
143
168
|
const bakFileName = path.join(this.dataDir, this.settings.fileDB.fileName + '.bak');
|
|
144
|
-
|
|
145
169
|
// Check the timestamps of each file, defaulting to 0 if they don't exist
|
|
146
170
|
let jsonlTimeStamp = 0;
|
|
147
171
|
let jsonTimeStamp = 0;
|
|
@@ -151,7 +175,8 @@ class StatesInMemoryJsonlDB extends StatesInMemoryFileDB {
|
|
|
151
175
|
if (stat.isFile()) {
|
|
152
176
|
jsonlTimeStamp = stat.mtime;
|
|
153
177
|
}
|
|
154
|
-
}
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
155
180
|
// ignore
|
|
156
181
|
}
|
|
157
182
|
try {
|
|
@@ -159,7 +184,8 @@ class StatesInMemoryJsonlDB extends StatesInMemoryFileDB {
|
|
|
159
184
|
if (stat.isFile()) {
|
|
160
185
|
jsonTimeStamp = stat.mtime;
|
|
161
186
|
}
|
|
162
|
-
}
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
163
189
|
// ignore
|
|
164
190
|
}
|
|
165
191
|
try {
|
|
@@ -167,84 +193,76 @@ class StatesInMemoryJsonlDB extends StatesInMemoryFileDB {
|
|
|
167
193
|
if (stat.isFile()) {
|
|
168
194
|
bakTimeStamp = stat.mtime;
|
|
169
195
|
}
|
|
170
|
-
}
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
171
198
|
// ignore
|
|
172
199
|
}
|
|
173
|
-
|
|
174
200
|
// Figure out which file needs to be imported
|
|
175
201
|
/** @type {string} */
|
|
176
202
|
let importFilename;
|
|
177
203
|
if (jsonTimeStamp > 0 && jsonTimeStamp >= bakTimeStamp && jsonTimeStamp >= jsonlTimeStamp) {
|
|
178
204
|
importFilename = jsonFileName;
|
|
179
|
-
}
|
|
205
|
+
}
|
|
206
|
+
else if (bakTimeStamp > 0 && bakTimeStamp >= jsonTimeStamp && bakTimeStamp >= jsonlTimeStamp) {
|
|
180
207
|
importFilename = bakFileName;
|
|
181
|
-
}
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
182
210
|
// None of the File DB files are newer than the JSONL file
|
|
183
211
|
// There is nothing to restore, we're done
|
|
184
212
|
return false;
|
|
185
213
|
}
|
|
186
|
-
|
|
187
214
|
await this._db.open();
|
|
188
215
|
this._db.clear();
|
|
189
216
|
await this._db.importJson(importFilename);
|
|
190
|
-
|
|
191
217
|
// And rename the existing files to avoid redoing the work next time
|
|
192
218
|
if (fs.existsSync(jsonFileName)) {
|
|
193
219
|
try {
|
|
194
220
|
fs.renameSync(jsonFileName, `${jsonFileName}.migrated`);
|
|
195
|
-
}
|
|
221
|
+
}
|
|
222
|
+
catch {
|
|
196
223
|
// ignore
|
|
197
224
|
}
|
|
198
225
|
}
|
|
199
226
|
if (fs.existsSync(bakFileName)) {
|
|
200
227
|
try {
|
|
201
228
|
fs.renameSync(bakFileName, `${bakFileName}.migrated`);
|
|
202
|
-
}
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
203
231
|
// ignore
|
|
204
232
|
}
|
|
205
233
|
}
|
|
206
|
-
|
|
207
234
|
// Signal to the caller that the DB is already open
|
|
208
235
|
return true;
|
|
209
236
|
}
|
|
210
|
-
|
|
211
237
|
async saveState() {
|
|
212
238
|
// Nothing to do, the DB saves behind the scenes
|
|
213
239
|
}
|
|
214
|
-
|
|
215
240
|
// Is regularly called and stores a compressed backup of the DB
|
|
216
241
|
async saveBackup() {
|
|
217
242
|
const now = Date.now();
|
|
218
243
|
const tmpBackupFileName = path.join(os.tmpdir(), `${this.getTimeStr(now)}_${this.settings.jsonlDB.fileName}`);
|
|
219
|
-
const backupFileName = path.join(
|
|
220
|
-
this.backupDir,
|
|
221
|
-
`${this.getTimeStr(now)}_${this.settings.jsonlDB.fileName}.gz`
|
|
222
|
-
);
|
|
223
|
-
|
|
244
|
+
const backupFileName = path.join(this.backupDir, `${this.getTimeStr(now)}_${this.settings.jsonlDB.fileName}.gz`);
|
|
224
245
|
if (!this._db.isOpen) {
|
|
225
246
|
this.log.warn(`${this.namespace} Cannot save backup ${backupFileName}: DB is closed`);
|
|
226
247
|
return;
|
|
227
248
|
}
|
|
228
|
-
|
|
229
249
|
try {
|
|
230
250
|
if (fs.existsSync(backupFileName)) {
|
|
231
251
|
return;
|
|
232
252
|
}
|
|
233
|
-
|
|
234
253
|
// Create a DB dump
|
|
235
254
|
await this._db.dump(tmpBackupFileName);
|
|
236
255
|
// and zip it
|
|
237
256
|
await tools.compressFileGZip(tmpBackupFileName, backupFileName, { deleteInput: true });
|
|
238
257
|
// figure out if older files need to be deleted
|
|
239
258
|
this.deleteOldBackupFiles(this.settings.jsonlDB.fileName);
|
|
240
|
-
}
|
|
259
|
+
}
|
|
260
|
+
catch (e) {
|
|
241
261
|
this.log.error(`${this.namespace} Cannot save backup ${backupFileName}: ${e.message}`);
|
|
242
262
|
}
|
|
243
263
|
}
|
|
244
|
-
|
|
245
264
|
async destroy() {
|
|
246
265
|
await super.destroy();
|
|
247
|
-
|
|
248
266
|
if (this._backupInterval) {
|
|
249
267
|
clearInterval(this._backupInterval);
|
|
250
268
|
}
|
|
@@ -253,5 +271,5 @@ class StatesInMemoryJsonlDB extends StatesInMemoryFileDB {
|
|
|
253
271
|
}
|
|
254
272
|
}
|
|
255
273
|
}
|
|
256
|
-
|
|
257
274
|
module.exports = StatesInMemoryJsonlDB;
|
|
275
|
+
//# sourceMappingURL=statesInMemJsonlDB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statesInMemJsonlDB.js","sourceRoot":"","sources":["../../../src/lib/states/statesInMemJsonlDB.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export = StatesInMemoryServerClass;
|
|
2
|
+
declare class StatesInMemoryServerClass extends StatesInRedisClient {
|
|
3
|
+
constructor(settings: any);
|
|
4
|
+
statesServer: StatesInMemServer;
|
|
5
|
+
}
|
|
6
|
+
import StatesInRedisClient_1 = require("@iobroker/db-states-redis/build/lib/states/statesInRedisClient");
|
|
7
|
+
import StatesInRedisClient = StatesInRedisClient_1.Client;
|
|
8
|
+
import StatesInMemServer = require("./statesInMemServerRedis");
|
|
9
|
+
//# sourceMappingURL=statesInMemServerClass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statesInMemServerClass.d.ts","sourceRoot":"","sources":["../../../src/lib/states/statesInMemServerClass.js"],"names":[],"mappings":";AAmBA;IACI,2BAcC;IADG,gCAAyD;CAWhE;;mDA5BgE,MAAM"}
|
|
@@ -6,22 +6,17 @@
|
|
|
6
6
|
* MIT License
|
|
7
7
|
*
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
9
|
/** @module statesInMemory */
|
|
11
|
-
|
|
12
10
|
/* jshint -W097 */
|
|
13
11
|
/* jshint strict:false */
|
|
14
12
|
/* jslint node: true */
|
|
15
13
|
'use strict';
|
|
16
|
-
|
|
17
14
|
const StatesInRedisClient = require('@iobroker/db-states-redis').Client;
|
|
18
15
|
const StatesInMemServer = require('./statesInMemServerRedis');
|
|
19
|
-
|
|
20
16
|
class StatesInMemoryServerClass extends StatesInRedisClient {
|
|
21
17
|
constructor(settings) {
|
|
22
18
|
settings.autoConnect = false; // delay Client connection to when we need it
|
|
23
19
|
super(settings);
|
|
24
|
-
|
|
25
20
|
const serverSettings = {
|
|
26
21
|
namespace: settings.namespace ? `${settings.namespace}-Server` : 'Server',
|
|
27
22
|
connection: settings.connection,
|
|
@@ -33,15 +28,13 @@ class StatesInMemoryServerClass extends StatesInRedisClient {
|
|
|
33
28
|
};
|
|
34
29
|
this.statesServer = new StatesInMemServer(serverSettings);
|
|
35
30
|
}
|
|
36
|
-
|
|
37
31
|
async destroy() {
|
|
38
32
|
await super.destroy(); // destroy client first
|
|
39
33
|
await this.statesServer.destroy(); // server afterwards too
|
|
40
34
|
}
|
|
41
|
-
|
|
42
35
|
getStatus() {
|
|
43
36
|
return this.statesServer.getStatus(); // return Status as Server
|
|
44
37
|
}
|
|
45
38
|
}
|
|
46
|
-
|
|
47
39
|
module.exports = StatesInMemoryServerClass;
|
|
40
|
+
//# sourceMappingURL=statesInMemServerClass.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statesInMemServerClass.js","sourceRoot":"","sources":["../../../src/lib/states/statesInMemServerClass.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,6BAA6B;AAE7B,kBAAkB;AAClB,yBAAyB;AACzB,uBAAuB;AACvB,YAAY,CAAC;AAEb,MAAM,mBAAmB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC,MAAM,CAAC;AACxE,MAAM,iBAAiB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAE9D,MAAM,yBAA0B,SAAQ,mBAAmB;IACvD,YAAY,QAAQ;QAChB,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,6CAA6C;QAC3E,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEhB,MAAM,cAAc,GAAG;YACnB,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,QAAQ;YACzE,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,mDAAmD;YACzE,CAAC;SACJ,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,uBAAuB;QAC9C,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,wBAAwB;IAC/D,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,0BAA0B;IACpE,CAAC;CACJ;AAED,MAAM,CAAC,OAAO,GAAG,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export = StatesInMemoryServer;
|
|
3
|
+
/**
|
|
4
|
+
* This class inherits statesInMemoryFileDB class and adds socket.io communication layer
|
|
5
|
+
* to access the methods via socket.io
|
|
6
|
+
**/
|
|
7
|
+
declare class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
8
|
+
/**
|
|
9
|
+
* Constructor
|
|
10
|
+
* @param settings State and InMem-DB settings
|
|
11
|
+
*/
|
|
12
|
+
constructor(settings: any);
|
|
13
|
+
serverConnections: {};
|
|
14
|
+
namespaceStates: string;
|
|
15
|
+
namespaceMsg: string;
|
|
16
|
+
namespaceLog: string;
|
|
17
|
+
namespaceSession: string;
|
|
18
|
+
namespaceMsgLen: number;
|
|
19
|
+
namespaceLogLen: number;
|
|
20
|
+
metaNamespace: string;
|
|
21
|
+
metaNamespaceLen: number;
|
|
22
|
+
/**
|
|
23
|
+
* Separate Namespace from ID and return both
|
|
24
|
+
* @param idWithNamespace ID or Array of IDs containing a redis namespace and the real ID
|
|
25
|
+
* @returns {{namespace: (string), id: string}} Object with namespace and the
|
|
26
|
+
* ID/Array of IDs without the namespace
|
|
27
|
+
* @private
|
|
28
|
+
*/
|
|
29
|
+
private _normalizeId;
|
|
30
|
+
/**
|
|
31
|
+
* Publish a subscribed value to one of the redis connections in redis format
|
|
32
|
+
* @param client Instance of RedisHandler
|
|
33
|
+
* @param type Type of subscribed key
|
|
34
|
+
* @param id Subscribed ID
|
|
35
|
+
* @param obj Object to publish
|
|
36
|
+
* @returns {number} Publish counter 0 or 1 depending if send out or not
|
|
37
|
+
*/
|
|
38
|
+
publishToClients(client: any, type: any, id: any, obj: any): number;
|
|
39
|
+
/**
|
|
40
|
+
* Register all event listeners for Handler and implement the relevant logic
|
|
41
|
+
* @param handler RedisHandler instance
|
|
42
|
+
* @private
|
|
43
|
+
*/
|
|
44
|
+
private _socketEvents;
|
|
45
|
+
/**
|
|
46
|
+
* Return connected RedisHandlers/Connections
|
|
47
|
+
* @returns {{}|*}
|
|
48
|
+
*/
|
|
49
|
+
getClients(): {} | any;
|
|
50
|
+
/**
|
|
51
|
+
* Initialize RedisHandler for a new network connection
|
|
52
|
+
* @param socket Network socket
|
|
53
|
+
* @private
|
|
54
|
+
*/
|
|
55
|
+
private _initSocket;
|
|
56
|
+
/**
|
|
57
|
+
* Initialize Redis Server
|
|
58
|
+
* @param settings Settings object
|
|
59
|
+
* @private
|
|
60
|
+
* @return {Promise<void>}
|
|
61
|
+
*/
|
|
62
|
+
private _initRedisServer;
|
|
63
|
+
server: net.Server | undefined;
|
|
64
|
+
}
|
|
65
|
+
import StatesInMemoryJsonlDB = require("./statesInMemJsonlDB");
|
|
66
|
+
import net = require("net");
|
|
67
|
+
//# sourceMappingURL=statesInMemServerRedis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statesInMemServerRedis.d.ts","sourceRoot":"","sources":["../../../src/lib/states/statesInMemServerRedis.js"],"names":[],"mappings":";;AA0CA;;;IAGI;AACJ;IACI;;;OAGG;IACH,2BAoCC;IAjCG,sBAA2B;IAC3B,wBAAmE;IACnE,qBAAsE;IACtE,qBAA+D;IAC/D,yBAA2E;IAE3E,wBAA+C;IAC/C,wBAA+C;IAE/C,sBAAkE;IAClE,yBAAiD;IAyBrD;;;;;;OAMG;IACH,qBAsBC;IAED;;;;;;;OAOG;IACH,6DAFa,MAAM,CAkClB;IAED;;;;OAIG;IACH,sBA6SC;IAED;;;OAGG;IACH,cAFa,EAAE,MAAE,CAIhB;IA2BD;;;;OAIG;IACH,oBAoBC;IAED;;;;;OAKG;IACH,yBAyBC;IAnBW,+BAAgC;CAoB/C"}
|
|
@@ -6,19 +6,15 @@
|
|
|
6
6
|
* MIT License
|
|
7
7
|
*
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
9
|
/** @module statesInMemory */
|
|
11
|
-
|
|
12
10
|
/* jshint -W097 */
|
|
13
11
|
/* jshint strict:false */
|
|
14
12
|
/* jslint node: true */
|
|
15
13
|
'use strict';
|
|
16
14
|
const net = require('net');
|
|
17
15
|
const { inspect } = require('util');
|
|
18
|
-
|
|
19
|
-
const RedisHandler = require('@iobroker/db-base').redisHandler;
|
|
16
|
+
const { RedisHandler } = require('@iobroker/db-base');
|
|
20
17
|
const StatesInMemoryJsonlDB = require('./statesInMemJsonlDB');
|
|
21
|
-
|
|
22
18
|
// settings = {
|
|
23
19
|
// change: function (id, state) {},
|
|
24
20
|
// connected: function (nameOfServer) {},
|
|
@@ -39,7 +35,6 @@ const StatesInMemoryJsonlDB = require('./statesInMemJsonlDB');
|
|
|
39
35
|
// host: localhost
|
|
40
36
|
// };
|
|
41
37
|
//
|
|
42
|
-
|
|
43
38
|
/**
|
|
44
39
|
* This class inherits statesInMemoryFileDB class and adds socket.io communication layer
|
|
45
40
|
* to access the methods via socket.io
|
|
@@ -51,7 +46,6 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
51
46
|
*/
|
|
52
47
|
constructor(settings) {
|
|
53
48
|
super(settings);
|
|
54
|
-
|
|
55
49
|
this.serverConnections = {};
|
|
56
50
|
this.namespaceStates = (this.settings.redisNamespace || 'io') + '.';
|
|
57
51
|
this.namespaceMsg = (this.settings.namespaceMsg || 'messagebox') + '.';
|
|
@@ -63,30 +57,21 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
63
57
|
//this.namespaceSessionlen = this.namespaceSession.length;
|
|
64
58
|
this.metaNamespace = (this.settings.metaNamespace || 'meta') + '.';
|
|
65
59
|
this.metaNamespaceLen = this.metaNamespace.length;
|
|
66
|
-
|
|
67
60
|
this.open()
|
|
68
61
|
.then(() => {
|
|
69
|
-
|
|
70
|
-
|
|
62
|
+
return this._initRedisServer(this.settings.connection);
|
|
63
|
+
})
|
|
71
64
|
.then(() => {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (typeof this.settings.connected === 'function') {
|
|
79
|
-
setImmediate(() => this.settings.connected());
|
|
80
|
-
}
|
|
81
|
-
})
|
|
65
|
+
this.log.debug(`${this.namespace} ${settings.secure ? 'Secure ' : ''} Redis inMem-states listening on port ${this.settings.port || 9000}`);
|
|
66
|
+
if (typeof this.settings.connected === 'function') {
|
|
67
|
+
setImmediate(() => this.settings.connected());
|
|
68
|
+
}
|
|
69
|
+
})
|
|
82
70
|
.catch(e => {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
process.exit(24); // todo: replace it with exitcode
|
|
87
|
-
});
|
|
71
|
+
this.log.error(`${this.namespace} Cannot start inMem-states on port ${this.settings.port || 9000}: ${e.message}`);
|
|
72
|
+
process.exit(24); // todo: replace it with exitcode
|
|
73
|
+
});
|
|
88
74
|
}
|
|
89
|
-
|
|
90
75
|
/**
|
|
91
76
|
* Separate Namespace from ID and return both
|
|
92
77
|
* @param idWithNamespace ID or Array of IDs containing a redis namespace and the real ID
|
|
@@ -105,7 +90,8 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
105
90
|
ns = namespace; // we ignore the pot. case from arrays with different namespaces
|
|
106
91
|
});
|
|
107
92
|
id = ids;
|
|
108
|
-
}
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
109
95
|
id = idWithNamespace;
|
|
110
96
|
const pointIdx = idWithNamespace.indexOf('.');
|
|
111
97
|
if (pointIdx !== -1) {
|
|
@@ -117,7 +103,6 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
117
103
|
}
|
|
118
104
|
return { id: id, namespace: ns };
|
|
119
105
|
}
|
|
120
|
-
|
|
121
106
|
/**
|
|
122
107
|
* Publish a subscribed value to one of the redis connections in redis format
|
|
123
108
|
* @param client Instance of RedisHandler
|
|
@@ -131,25 +116,24 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
131
116
|
return 0;
|
|
132
117
|
}
|
|
133
118
|
const s = client._subscribe[type];
|
|
134
|
-
|
|
135
119
|
const found = s.find(sub => sub.regex.test(id));
|
|
136
|
-
|
|
137
120
|
if (found) {
|
|
138
121
|
if (type === 'meta') {
|
|
139
122
|
this.log.silly(`${this.namespace} Redis Publish Meta ${id}=${obj}`);
|
|
140
123
|
const sendPattern = this.metaNamespace + found.pattern;
|
|
141
124
|
const sendId = this.metaNamespace + id;
|
|
142
125
|
client.sendArray(null, ['pmessage', sendPattern, sendId, obj]);
|
|
143
|
-
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
144
128
|
let objString;
|
|
145
129
|
try {
|
|
146
130
|
objString = JSON.stringify(obj);
|
|
147
|
-
}
|
|
131
|
+
}
|
|
132
|
+
catch (e) {
|
|
148
133
|
// mainly catch circular structures - thus log object with inspect
|
|
149
134
|
this.log.error(`${this.namespace} Error on publishing state: ${id}=${inspect(obj)}: ${e.message}`);
|
|
150
135
|
return 0;
|
|
151
136
|
}
|
|
152
|
-
|
|
153
137
|
this.log.silly(`${this.namespace} Redis Publish State ${id}=${objString}`);
|
|
154
138
|
const sendPattern = (type === 'state' ? '' : this.namespaceStates) + found.pattern;
|
|
155
139
|
const sendId = (type === 'state' ? '' : this.namespaceStates) + id;
|
|
@@ -159,7 +143,6 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
159
143
|
}
|
|
160
144
|
return 0;
|
|
161
145
|
}
|
|
162
|
-
|
|
163
146
|
/**
|
|
164
147
|
* Register all event listeners for Handler and implement the relevant logic
|
|
165
148
|
* @param handler RedisHandler instance
|
|
@@ -168,7 +151,6 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
168
151
|
_socketEvents(handler) {
|
|
169
152
|
let connectionName = null;
|
|
170
153
|
let namespaceLog = this.namespace;
|
|
171
|
-
|
|
172
154
|
// Handle Redis "INFO" request
|
|
173
155
|
handler.on('info', (_data, responseId) => {
|
|
174
156
|
let infoString = '# Server\r\n';
|
|
@@ -181,19 +163,15 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
181
163
|
infoString += '# CPU\r\n';
|
|
182
164
|
infoString += '# Cluster\r\n';
|
|
183
165
|
infoString += '# Keyspace\r\n';
|
|
184
|
-
infoString += `db0:keys=${Object.keys(this.dataset).length},expires=${
|
|
185
|
-
Object.keys(this.stateExpires).length + Object.keys(this.sessionExpires).length
|
|
186
|
-
},avg_ttl=98633637897`;
|
|
166
|
+
infoString += `db0:keys=${Object.keys(this.dataset).length},expires=${Object.keys(this.stateExpires).length + Object.keys(this.sessionExpires).length},avg_ttl=98633637897`;
|
|
187
167
|
handler.sendBulk(responseId, infoString);
|
|
188
168
|
});
|
|
189
|
-
|
|
190
169
|
// Handle Redis "QUIT" request
|
|
191
170
|
handler.on('quit', (_data, responseId) => {
|
|
192
171
|
this.log.silly(`${namespaceLog} Redis QUIT received, close connection`);
|
|
193
172
|
handler.sendString(responseId, 'OK');
|
|
194
173
|
handler.close();
|
|
195
174
|
});
|
|
196
|
-
|
|
197
175
|
// Handle Redis "PUBLISH" request
|
|
198
176
|
handler.on('publish', (data, responseId) => {
|
|
199
177
|
const { id, namespace } = this._normalizeId(data[0]);
|
|
@@ -204,30 +182,26 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
204
182
|
const publishCount = this.publishAll(namespace.substr(0, namespace.length - 1), id, JSON.parse(data[1]));
|
|
205
183
|
handler.sendInteger(responseId, publishCount);
|
|
206
184
|
});
|
|
207
|
-
|
|
208
185
|
// Handle Redis "MGET" request for state namespace
|
|
209
186
|
handler.on('mget', (data, responseId) => {
|
|
210
187
|
if (!data || !data[0]) {
|
|
211
188
|
return void handler.sendArray(responseId, []);
|
|
212
189
|
}
|
|
213
190
|
const { id, namespace } = this._normalizeId(data);
|
|
214
|
-
|
|
215
191
|
if (namespace === this.namespaceStates) {
|
|
216
192
|
try {
|
|
217
193
|
const states = this._getStates(id);
|
|
218
194
|
const result = states.map(el => (el ? JSON.stringify(el) : null));
|
|
219
195
|
handler.sendArray(responseId, result);
|
|
220
|
-
}
|
|
196
|
+
}
|
|
197
|
+
catch (err) {
|
|
221
198
|
handler.sendError(responseId, new Error(`ERROR _getStates: ${err.message}`));
|
|
222
199
|
}
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
new Error(`MGET-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)
|
|
227
|
-
);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
handler.sendError(responseId, new Error(`MGET-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`));
|
|
228
203
|
}
|
|
229
204
|
});
|
|
230
|
-
|
|
231
205
|
// Handle Redis "GET" request for state and session namespace
|
|
232
206
|
handler.on('get', (data, responseId) => {
|
|
233
207
|
const { id, namespace } = this._normalizeId(data[0]);
|
|
@@ -235,35 +209,38 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
235
209
|
const result = this._getState(id);
|
|
236
210
|
if (!result) {
|
|
237
211
|
handler.sendNull(responseId);
|
|
238
|
-
}
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
239
214
|
if (Buffer.isBuffer(result)) {
|
|
240
215
|
handler.sendBufBulk(responseId, result);
|
|
241
|
-
}
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
242
218
|
handler.sendBulk(responseId, JSON.stringify(result));
|
|
243
219
|
}
|
|
244
220
|
}
|
|
245
|
-
}
|
|
221
|
+
}
|
|
222
|
+
else if (namespace === this.namespaceSession) {
|
|
246
223
|
const result = this._getSession(id);
|
|
247
224
|
if (result === undefined || result === null) {
|
|
248
225
|
handler.sendNull(responseId);
|
|
249
|
-
}
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
250
228
|
handler.sendBulk(responseId, JSON.stringify(result));
|
|
251
229
|
}
|
|
252
|
-
}
|
|
230
|
+
}
|
|
231
|
+
else if (namespace === this.metaNamespace) {
|
|
253
232
|
const result = this.getMeta(id);
|
|
254
233
|
if (result === undefined || result === null) {
|
|
255
234
|
handler.sendNull(responseId);
|
|
256
|
-
}
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
257
237
|
handler.sendBulk(responseId, result);
|
|
258
238
|
}
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
new Error(`GET-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)
|
|
263
|
-
);
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
handler.sendError(responseId, new Error(`GET-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`));
|
|
264
242
|
}
|
|
265
243
|
});
|
|
266
|
-
|
|
267
244
|
// Handle Redis "SET" request for state namespace
|
|
268
245
|
handler.on('set', (data, responseId) => {
|
|
269
246
|
const { id, namespace } = this._normalizeId(data[0]);
|
|
@@ -272,27 +249,27 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
272
249
|
let state;
|
|
273
250
|
try {
|
|
274
251
|
state = JSON.parse(data[1].toString('utf-8'));
|
|
275
|
-
}
|
|
252
|
+
}
|
|
253
|
+
catch {
|
|
276
254
|
// No JSON, so handle as binary data and set as Buffer
|
|
277
255
|
this._setBinaryState(id, data[1]);
|
|
278
256
|
return void handler.sendString(responseId, 'OK');
|
|
279
257
|
}
|
|
280
258
|
this._setStateDirect(id, state);
|
|
281
259
|
handler.sendString(responseId, 'OK');
|
|
282
|
-
}
|
|
260
|
+
}
|
|
261
|
+
catch (err) {
|
|
283
262
|
handler.sendError(responseId, new Error(`ERROR setState id=${id}: ${err.message}`));
|
|
284
263
|
}
|
|
285
|
-
}
|
|
264
|
+
}
|
|
265
|
+
else if (namespace === this.metaNamespace) {
|
|
286
266
|
this.setMeta(id, data[1].toString('utf-8'));
|
|
287
267
|
handler.sendString(responseId, 'OK');
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
new Error(`SET-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)
|
|
292
|
-
);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
handler.sendError(responseId, new Error(`SET-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`));
|
|
293
271
|
}
|
|
294
272
|
});
|
|
295
|
-
|
|
296
273
|
// Handle Redis "SETEX" request for state and session namespace
|
|
297
274
|
handler.on('setex', (data, responseId) => {
|
|
298
275
|
const { id, namespace } = this._normalizeId(data[0]);
|
|
@@ -301,62 +278,55 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
301
278
|
let state;
|
|
302
279
|
try {
|
|
303
280
|
state = JSON.parse(data[2].toString('utf-8'));
|
|
304
|
-
}
|
|
281
|
+
}
|
|
282
|
+
catch {
|
|
305
283
|
// No JSON, so handle as binary data and set as Buffer
|
|
306
284
|
state = data[2];
|
|
307
285
|
}
|
|
308
286
|
const expire = parseInt(data[1].toString('utf-8'), 10);
|
|
309
287
|
if (isNaN(expire)) {
|
|
310
|
-
return void handler.sendError(
|
|
311
|
-
responseId,
|
|
312
|
-
new Error(`ERROR parsing expire value ${data[1].toString('utf-8')}`)
|
|
313
|
-
);
|
|
288
|
+
return void handler.sendError(responseId, new Error(`ERROR parsing expire value ${data[1].toString('utf-8')}`));
|
|
314
289
|
}
|
|
315
290
|
this._setStateDirect(id, state, expire);
|
|
316
291
|
handler.sendString(responseId, 'OK');
|
|
317
|
-
}
|
|
292
|
+
}
|
|
293
|
+
catch (err) {
|
|
318
294
|
handler.sendError(responseId, new Error(`ERROR setStateEx id=${id}: ${err.message}`));
|
|
319
295
|
}
|
|
320
|
-
}
|
|
296
|
+
}
|
|
297
|
+
else if (namespace === this.namespaceSession) {
|
|
321
298
|
try {
|
|
322
299
|
const state = JSON.parse(data[2].toString('utf-8'));
|
|
323
300
|
const expire = parseInt(data[1].toString('utf-8'), 10);
|
|
324
301
|
if (isNaN(expire)) {
|
|
325
|
-
return void handler.sendError(
|
|
326
|
-
responseId,
|
|
327
|
-
new Error(`ERROR parsing expire value ${data[1].toString('utf-8')}`)
|
|
328
|
-
);
|
|
302
|
+
return void handler.sendError(responseId, new Error(`ERROR parsing expire value ${data[1].toString('utf-8')}`));
|
|
329
303
|
}
|
|
330
304
|
this._setSession(id, expire, state);
|
|
331
305
|
handler.sendString(responseId, 'OK');
|
|
332
|
-
}
|
|
306
|
+
}
|
|
307
|
+
catch (err) {
|
|
333
308
|
handler.sendError(responseId, new Error(`ERROR _setSession ${id}: ${err.message}`));
|
|
334
309
|
}
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
new Error(`SETEX-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)
|
|
339
|
-
);
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
handler.sendError(responseId, new Error(`SETEX-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`));
|
|
340
313
|
}
|
|
341
314
|
});
|
|
342
|
-
|
|
343
315
|
// Handle Redis "DEL" request for state and session namespace
|
|
344
316
|
handler.on('del', (data, responseId) => {
|
|
345
317
|
const { id, namespace } = this._normalizeId(data[0]);
|
|
346
318
|
if (namespace === this.namespaceStates) {
|
|
347
319
|
this._delState(id);
|
|
348
320
|
handler.sendInteger(responseId, 1);
|
|
349
|
-
}
|
|
321
|
+
}
|
|
322
|
+
else if (namespace === this.namespaceSession) {
|
|
350
323
|
this._destroySession(id);
|
|
351
324
|
handler.sendInteger(responseId, 1);
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
new Error(`DEL-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)
|
|
356
|
-
);
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
handler.sendError(responseId, new Error(`DEL-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`));
|
|
357
328
|
}
|
|
358
329
|
});
|
|
359
|
-
|
|
360
330
|
// Handle Redis "KEYS" request for state namespace
|
|
361
331
|
handler.on('keys', (data, responseId) => {
|
|
362
332
|
if (!data || !data.length) {
|
|
@@ -372,98 +342,97 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
372
342
|
const keys = this._getKeys(pattern);
|
|
373
343
|
const result = keys.map(id => this.namespaceStates + id);
|
|
374
344
|
handler.sendArray(responseId, result);
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
new Error(`KEYS-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)
|
|
379
|
-
);
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
handler.sendError(responseId, new Error(`KEYS-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`));
|
|
380
348
|
}
|
|
381
349
|
});
|
|
382
|
-
|
|
383
350
|
// Handle Redis "PSUBSCRIBE" request for state, log and session namespace
|
|
384
351
|
handler.on('psubscribe', (data, responseId) => {
|
|
385
352
|
const { id, namespace } = this._normalizeId(data[0]);
|
|
386
353
|
if (namespace === this.namespaceMsg) {
|
|
387
354
|
this._subscribeMessageForClient(handler, id.substr(this.namespaceMsgLen));
|
|
388
355
|
handler.sendArray(responseId, ['psubscribe', data[0], 1]);
|
|
389
|
-
}
|
|
356
|
+
}
|
|
357
|
+
else if (namespace === this.namespaceLog) {
|
|
390
358
|
this._subscribeLogForClient(handler, id.substr(this.namespaceLogLen));
|
|
391
359
|
handler.sendArray(responseId, ['psubscribe', data[0], 1]);
|
|
392
|
-
}
|
|
360
|
+
}
|
|
361
|
+
else if (namespace === this.namespaceStates) {
|
|
393
362
|
this._subscribeForClient(handler, id);
|
|
394
363
|
handler.sendArray(responseId, ['psubscribe', data[0], 1]);
|
|
395
|
-
}
|
|
364
|
+
}
|
|
365
|
+
else if (namespace === this.metaNamespace) {
|
|
396
366
|
this._subscribeMeta(handler, id);
|
|
397
367
|
handler.sendArray(responseId, ['psubscribe', data[0], 1]);
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
new Error(`PSUBSCRIBE-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)
|
|
402
|
-
);
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
handler.sendError(responseId, new Error(`PSUBSCRIBE-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`));
|
|
403
371
|
}
|
|
404
372
|
});
|
|
405
|
-
|
|
406
373
|
// Handle Redis "UNSUBSCRIBE" request for state, log and session namespace
|
|
407
374
|
handler.on('punsubscribe', (data, responseId) => {
|
|
408
375
|
const { id, namespace } = this._normalizeId(data[0]);
|
|
409
376
|
if (namespace === this.namespaceMsg) {
|
|
410
377
|
this._unsubscribeMessageForClient(handler, id.substr(this.namespaceMsgLen));
|
|
411
378
|
handler.sendArray(responseId, ['punsubscribe', data[0], 1]);
|
|
412
|
-
}
|
|
379
|
+
}
|
|
380
|
+
else if (namespace === this.namespaceLog) {
|
|
413
381
|
this._unsubscribeLogForClient(handler, id.substr(this.namespaceLogLen));
|
|
414
382
|
handler.sendArray(responseId, ['punsubscribe', data[0], 1]);
|
|
415
|
-
}
|
|
383
|
+
}
|
|
384
|
+
else if (namespace === this.namespaceStates) {
|
|
416
385
|
this._unsubscribeForClient(handler, id);
|
|
417
386
|
handler.sendArray(responseId, ['punsubscribe', data[0], 1]);
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
new Error(`PUNSUBSCRIBE-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`)
|
|
422
|
-
);
|
|
387
|
+
}
|
|
388
|
+
else {
|
|
389
|
+
handler.sendError(responseId, new Error(`PUNSUBSCRIBE-UNSUPPORTED for namespace ${namespace}: Data=${JSON.stringify(data)}`));
|
|
423
390
|
}
|
|
424
391
|
});
|
|
425
|
-
|
|
426
392
|
// Handle Redis "SUBSCRIBE" ... currently mainly ignored
|
|
427
393
|
handler.on('subscribe', (data, responseId) => {
|
|
428
394
|
if (data[0].startsWith('__keyevent@')) {
|
|
429
395
|
// we ignore these type of events because we publish expires anyway directly
|
|
430
396
|
handler.sendArray(responseId, ['subscribe', data[0], 1]);
|
|
431
|
-
}
|
|
397
|
+
}
|
|
398
|
+
else {
|
|
432
399
|
handler.sendError(responseId, new Error(`SUBSCRIBE-UNSUPPORTED for ${data[0]}`));
|
|
433
400
|
}
|
|
434
401
|
});
|
|
435
|
-
|
|
436
402
|
// Handle Redis "CONFIG" ... currently mainly ignored
|
|
437
403
|
handler.on('config', (data, responseId) => {
|
|
438
|
-
if (data[0] === '
|
|
404
|
+
if (typeof data[0] === 'string' &&
|
|
405
|
+
data[0].toLowerCase() === 'set' &&
|
|
406
|
+
data[1] === 'notify-keyspace-events') {
|
|
439
407
|
// we ignore these type of commands for now, should only be to subscribe to keyspace events
|
|
440
408
|
handler.sendString(responseId, 'OK');
|
|
441
|
-
}
|
|
409
|
+
}
|
|
410
|
+
else {
|
|
442
411
|
handler.sendError(responseId, new Error(`CONFIG-UNSUPPORTED for ${JSON.stringify(data)}`));
|
|
443
412
|
}
|
|
444
413
|
});
|
|
445
|
-
|
|
446
414
|
// handle client SETNAME/GETNAME
|
|
447
415
|
handler.on('client', (data, responseId) => {
|
|
448
416
|
if (data[0] === 'setname' && typeof data[1] === 'string') {
|
|
449
417
|
connectionName = data[1];
|
|
450
418
|
namespaceLog = connectionName;
|
|
451
419
|
handler.sendString(responseId, 'OK');
|
|
452
|
-
}
|
|
420
|
+
}
|
|
421
|
+
else if (data[0] === 'getname') {
|
|
453
422
|
if (connectionName && typeof connectionName === 'string') {
|
|
454
423
|
handler.sendString(responseId, connectionName);
|
|
455
|
-
}
|
|
424
|
+
}
|
|
425
|
+
else {
|
|
456
426
|
// redis sends null if no name defined
|
|
457
427
|
handler.sendNull(responseId);
|
|
458
428
|
}
|
|
459
|
-
}
|
|
429
|
+
}
|
|
430
|
+
else {
|
|
460
431
|
handler.sendError(responseId, new Error(`CLIENT-UNSUPPORTED for ${JSON.stringify(data)}`));
|
|
461
432
|
}
|
|
462
433
|
});
|
|
463
|
-
|
|
464
434
|
handler.on('error', err => this.log.warn(`${namespaceLog} Redis states: ${err}`));
|
|
465
435
|
}
|
|
466
|
-
|
|
467
436
|
/**
|
|
468
437
|
* Return connected RedisHandlers/Connections
|
|
469
438
|
* @returns {{}|*}
|
|
@@ -471,7 +440,6 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
471
440
|
getClients() {
|
|
472
441
|
return this.serverConnections;
|
|
473
442
|
}
|
|
474
|
-
|
|
475
443
|
/**
|
|
476
444
|
* Destructor of the class. Called by shutting down.
|
|
477
445
|
*/
|
|
@@ -481,14 +449,14 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
481
449
|
this.serverConnections[s].close();
|
|
482
450
|
delete this.serverConnections[s];
|
|
483
451
|
}
|
|
484
|
-
|
|
485
452
|
await new Promise(resolve => {
|
|
486
453
|
if (!this.server) {
|
|
487
454
|
return void resolve();
|
|
488
455
|
}
|
|
489
456
|
try {
|
|
490
457
|
this.server.close(() => resolve());
|
|
491
|
-
}
|
|
458
|
+
}
|
|
459
|
+
catch (e) {
|
|
492
460
|
console.log(e.message);
|
|
493
461
|
resolve();
|
|
494
462
|
}
|
|
@@ -496,7 +464,6 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
496
464
|
}
|
|
497
465
|
await super.destroy();
|
|
498
466
|
}
|
|
499
|
-
|
|
500
467
|
/**
|
|
501
468
|
* Initialize RedisHandler for a new network connection
|
|
502
469
|
* @param socket Network socket
|
|
@@ -505,7 +472,6 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
505
472
|
_initSocket(socket) {
|
|
506
473
|
this.settings.connection.enhancedLogging &&
|
|
507
474
|
this.log.silly(`${this.namespace} Handling new Redis States connection`);
|
|
508
|
-
|
|
509
475
|
const options = {
|
|
510
476
|
log: this.log,
|
|
511
477
|
logScope: this.namespace + ' States',
|
|
@@ -514,16 +480,13 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
514
480
|
};
|
|
515
481
|
const handler = new RedisHandler(socket, options);
|
|
516
482
|
this._socketEvents(handler);
|
|
517
|
-
|
|
518
483
|
this.serverConnections[socket.remoteAddress + ':' + socket.remotePort] = handler;
|
|
519
|
-
|
|
520
484
|
socket.on('close', () => {
|
|
521
485
|
if (this.serverConnections[socket.remoteAddress + ':' + socket.remotePort]) {
|
|
522
486
|
delete this.serverConnections[socket.remoteAddress + ':' + socket.remotePort];
|
|
523
487
|
}
|
|
524
488
|
});
|
|
525
489
|
}
|
|
526
|
-
|
|
527
490
|
/**
|
|
528
491
|
* Initialize Redis Server
|
|
529
492
|
* @param settings Settings object
|
|
@@ -537,25 +500,15 @@ class StatesInMemoryServer extends StatesInMemoryJsonlDB {
|
|
|
537
500
|
}
|
|
538
501
|
try {
|
|
539
502
|
this.server = net.createServer();
|
|
540
|
-
this.server.on('error', err =>
|
|
541
|
-
this.log.info(
|
|
542
|
-
`${this.namespace} ${settings.secure ? 'Secure ' : ''} Error inMem-objects listening on port ${
|
|
543
|
-
settings.port || 9001
|
|
544
|
-
}: ${err}`
|
|
545
|
-
)
|
|
546
|
-
);
|
|
503
|
+
this.server.on('error', err => this.log.info(`${this.namespace} ${settings.secure ? 'Secure ' : ''} Error inMem-objects listening on port ${settings.port || 9001}: ${err}`));
|
|
547
504
|
this.server.on('connection', socket => this._initSocket(socket));
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
settings.host === 'localhost' ? '127.0.0.1' : settings.host ? settings.host : undefined,
|
|
552
|
-
() => resolve()
|
|
553
|
-
);
|
|
554
|
-
} catch (err) {
|
|
505
|
+
this.server.listen(settings.port || 9000, settings.host === 'localhost' ? '127.0.0.1' : settings.host ? settings.host : undefined, () => resolve());
|
|
506
|
+
}
|
|
507
|
+
catch (err) {
|
|
555
508
|
reject(err);
|
|
556
509
|
}
|
|
557
510
|
});
|
|
558
511
|
}
|
|
559
512
|
}
|
|
560
|
-
|
|
561
513
|
module.exports = StatesInMemoryServer;
|
|
514
|
+
//# sourceMappingURL=statesInMemServerRedis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statesInMemServerRedis.js","sourceRoot":"","sources":["../../../src/lib/states/statesInMemServerRedis.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iobroker/db-states-jsonl",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.1.0-alpha.0-20220819-74ceeddc",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">=12.0.0"
|
|
6
6
|
},
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@alcalzone/jsonl-db": "~2.5.1",
|
|
9
|
-
"@iobroker/db-base": "4.0.
|
|
10
|
-
"@iobroker/db-states-file": "4.0.
|
|
11
|
-
"@iobroker/db-states-redis": "4.0.
|
|
9
|
+
"@iobroker/db-base": "4.1.0-alpha.0-20220819-74ceeddc",
|
|
10
|
+
"@iobroker/db-states-file": "4.1.0-alpha.0-20220819-74ceeddc",
|
|
11
|
+
"@iobroker/db-states-redis": "4.1.0-alpha.0-20220819-74ceeddc"
|
|
12
12
|
},
|
|
13
13
|
"keywords": [
|
|
14
14
|
"ioBroker",
|
|
@@ -25,15 +25,19 @@
|
|
|
25
25
|
"type": "git",
|
|
26
26
|
"url": "https://github.com/ioBroker/ioBroker.js-controller/packages/db-states-jsonl"
|
|
27
27
|
},
|
|
28
|
-
"scripts": {
|
|
29
|
-
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "tsc -b tsconfig.build.json"
|
|
30
|
+
},
|
|
31
|
+
"main": "build/index.js",
|
|
32
|
+
"types": "build/index.d.ts",
|
|
30
33
|
"license": "MIT",
|
|
31
34
|
"publishConfig": {
|
|
32
35
|
"access": "public"
|
|
33
36
|
},
|
|
34
37
|
"files": [
|
|
35
|
-
"lib/",
|
|
36
|
-
"index.js"
|
|
38
|
+
"build/lib/",
|
|
39
|
+
"build/index.js",
|
|
40
|
+
"build/index.d.ts"
|
|
37
41
|
],
|
|
38
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "febfe24ecb050ec02f848cc869d84aa30d69c615"
|
|
39
43
|
}
|