jsir 2.4.1 → 2.4.2
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/cmd/oaa.js +6 -1
- package/deps/room.js +10 -5
- package/deps/server.js +2 -2
- package/deps/setting.js +10 -4
- package/deps/util.js +1 -1
- package/package.json +1 -1
package/cmd/oaa.js
CHANGED
|
@@ -32,6 +32,7 @@ const console = createConsole();
|
|
|
32
32
|
const room = require('../deps/room');
|
|
33
33
|
const server = require('../deps/server')
|
|
34
34
|
const {reqNode} = require("../deps/room");
|
|
35
|
+
const {isRunningInBackground} = require("../deps/util");
|
|
35
36
|
|
|
36
37
|
let lastFilterArg = '';
|
|
37
38
|
let _cmdMapFile = setting.name + 'CmdMap.json'
|
|
@@ -1442,7 +1443,11 @@ const keywordDef = {
|
|
|
1442
1443
|
if (args.length > 1) {
|
|
1443
1444
|
_args = args.slice(1)
|
|
1444
1445
|
}
|
|
1445
|
-
|
|
1446
|
+
if (isRunningInBackground()) {
|
|
1447
|
+
console.log(await e(`cd "${setting.workspaceMap[setting.defaultSpace]}";${args.join(' ')}`))
|
|
1448
|
+
} else {
|
|
1449
|
+
await eia(`cd "${setting.workspaceMap[setting.defaultSpace]}";${cmd}`, _args, true)
|
|
1450
|
+
}
|
|
1446
1451
|
},
|
|
1447
1452
|
short: 'E'
|
|
1448
1453
|
},
|
package/deps/room.js
CHANGED
|
@@ -74,7 +74,7 @@ function _onRoom() {
|
|
|
74
74
|
if (setting.roomTid[0]) {
|
|
75
75
|
_onRoom();
|
|
76
76
|
}
|
|
77
|
-
},
|
|
77
|
+
}, setting.roomTimer)
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
function offRoom() {
|
|
@@ -137,7 +137,12 @@ async function syncRooms() {
|
|
|
137
137
|
fns.push(async () => {
|
|
138
138
|
let respBody = ''
|
|
139
139
|
try {
|
|
140
|
-
|
|
140
|
+
try {
|
|
141
|
+
respBody = await reqNode(node, "get", "/");
|
|
142
|
+
} catch (e) {
|
|
143
|
+
debug(`sync ${node} failed:`, e);
|
|
144
|
+
respBody = await reqNode(node, "get", "/", setting.defaultPort);
|
|
145
|
+
}
|
|
141
146
|
syncRooms.push(JSON.parse(respBody))
|
|
142
147
|
debug(`sync ${node} success`);
|
|
143
148
|
} catch (e) {
|
|
@@ -327,7 +332,7 @@ function isDisableConnect(node, port) {
|
|
|
327
332
|
async function reqNode(node, method, url, port, body) {
|
|
328
333
|
let room = setting.rooms.filter(i => i.selfNode === node)[0]
|
|
329
334
|
if (!port) {
|
|
330
|
-
port =
|
|
335
|
+
port = setting.defaultPort;
|
|
331
336
|
if (room) {
|
|
332
337
|
let activeJsir = Object.values(room.jsirs)
|
|
333
338
|
.filter(i => !isDisableConnect(node, i.port));
|
|
@@ -348,7 +353,7 @@ async function reqNode(node, method, url, port, body) {
|
|
|
348
353
|
debug('reqRoom', JSON.stringify(opt))
|
|
349
354
|
return await new Promise((resolve, reject) => {
|
|
350
355
|
try {
|
|
351
|
-
let timeoutMs = url
|
|
356
|
+
let timeoutMs = setting.reqNodeTimeouts[url] || setting.reqNodeDefaultTimeout;
|
|
352
357
|
let timeout = null
|
|
353
358
|
|
|
354
359
|
const req = http.request(opt, (res) => {
|
|
@@ -378,7 +383,7 @@ async function reqNode(node, method, url, port, body) {
|
|
|
378
383
|
req.on('error', (e) => {
|
|
379
384
|
clearTimeout(timeout); // 清除超时定时器
|
|
380
385
|
if (room) {
|
|
381
|
-
setting.disableConnect[node + ":" + port] = Date.now() +
|
|
386
|
+
setting.disableConnect[node + ":" + port] = Date.now() + setting.disableConnectLimit
|
|
382
387
|
}
|
|
383
388
|
reject(e)
|
|
384
389
|
});
|
package/deps/server.js
CHANGED
|
@@ -3,7 +3,7 @@ const {createConsole, vl, aesDecipher, md5, aesCipher, debugStr, isError} = requ
|
|
|
3
3
|
const console = createConsole();
|
|
4
4
|
const setting = require('../deps/setting')
|
|
5
5
|
// 尝试监听的端口
|
|
6
|
-
const preferredPort =
|
|
6
|
+
const preferredPort = setting.defaultPort;
|
|
7
7
|
// 路由存储
|
|
8
8
|
const routes = setting.routes;
|
|
9
9
|
let invokeStart = false;
|
|
@@ -51,7 +51,7 @@ async function createServer(port) {
|
|
|
51
51
|
const decodedTime = verifySign(sign);
|
|
52
52
|
const currentTime = Date.now();
|
|
53
53
|
|
|
54
|
-
if (decodedTime === null || Math.abs(currentTime - decodedTime) >
|
|
54
|
+
if (decodedTime === null || Math.abs(currentTime - decodedTime) > setting.serverSignExpire) {
|
|
55
55
|
res.writeHead(403, { 'Content-Type': 'text/plain' });
|
|
56
56
|
res.end('Forbidden: Invalid Sign');
|
|
57
57
|
return;
|
package/deps/setting.js
CHANGED
|
@@ -8,8 +8,6 @@ fileType[exeKey] = "exe";
|
|
|
8
8
|
fileType[initKey] = "init";
|
|
9
9
|
fileType[fileKey] = "file";
|
|
10
10
|
|
|
11
|
-
const defaultType = 'note';
|
|
12
|
-
|
|
13
11
|
module.exports = {
|
|
14
12
|
name: 'jsir',
|
|
15
13
|
libDataDir: '.jsirData',
|
|
@@ -17,7 +15,7 @@ module.exports = {
|
|
|
17
15
|
exeKey,
|
|
18
16
|
initKey,
|
|
19
17
|
fileKey,
|
|
20
|
-
defaultType,
|
|
18
|
+
defaultType: 'note',
|
|
21
19
|
packages: {},
|
|
22
20
|
tips: {},
|
|
23
21
|
defaultSpace: 'local',
|
|
@@ -28,8 +26,16 @@ module.exports = {
|
|
|
28
26
|
rooms: [],
|
|
29
27
|
server: null,
|
|
30
28
|
disableConnect: {},
|
|
29
|
+
disableConnectLimit: 6000,
|
|
31
30
|
routes: {},
|
|
32
31
|
services: {},
|
|
33
32
|
serviceFns: {},
|
|
34
|
-
enterOutputs: null
|
|
33
|
+
enterOutputs: null,
|
|
34
|
+
defaultPort: 52108,
|
|
35
|
+
reqNodeDefaultTimeout: 9000,
|
|
36
|
+
reqNodeTimeouts: {
|
|
37
|
+
'/': 3000
|
|
38
|
+
},
|
|
39
|
+
roomTimer: 1000,
|
|
40
|
+
serverSignExpire: 6000
|
|
35
41
|
}
|
package/deps/util.js
CHANGED
|
@@ -1204,7 +1204,7 @@ async function _fileLock(key, fn, expireMs = 49000) {
|
|
|
1204
1204
|
|
|
1205
1205
|
async function fileLock(key, fn, wait = true, expireMs = 49000) {
|
|
1206
1206
|
`
|
|
1207
|
-
文件锁,
|
|
1207
|
+
文件锁, 默认一直等待expireMs,直到加锁成功执行fn
|
|
1208
1208
|
wait = false, 加锁失败则不执行fn
|
|
1209
1209
|
return void
|
|
1210
1210
|
`
|