jsir 2.3.6 → 2.3.8

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/deps/room.js CHANGED
@@ -1,7 +1,7 @@
1
1
  const os = require('os');
2
2
  const {fileJson, fileLock, vl, createConsole, getKeyTips, getValTips,
3
3
  getRoomsDir, e, regEach} = require('./util');
4
- const server = require('../deps/server')
4
+ const {setRoute} = require('../deps/server')
5
5
  const roomDataFile = "jsirRoom.json"
6
6
  const roomsDirLockKey = "RW_" + getRoomsDir();
7
7
  const syncRoomsLockKey = "SyncRooms_" + getRoomsDir();
@@ -30,8 +30,8 @@ function isPidAlive(pid) {
30
30
  function onRoom() {
31
31
  if (!setting.roomTid[0]) {
32
32
  try {
33
- server.setRoute("post", "/", (req, res) => setting.selfRoom)
34
- server.setRoute("get", "/", (req, res) => setting.selfRoom)
33
+ setRoute("post", "/", (req, res) => setting.selfRoom)
34
+ setRoute("get", "/", (req, res) => setting.selfRoom)
35
35
  } catch (e) {
36
36
  console.$error("initRoute failed", e)
37
37
  }
@@ -166,9 +166,9 @@ async function _syncSetting(room) {
166
166
  }
167
167
  setting.rooms = [setting.selfRoom, ...rooms]
168
168
  .map(room => {
169
- room.active = Date.now() - (room.lastUpdateTime || 0) <= 18000;
169
+ room.active = Date.now() - (room.lastUpdateTime || 0) <= 9000;
170
170
  Object.entries(room.jsirs).forEach(([key, jsir]) =>
171
- jsir.active = Date.now() - (jsir.lastUpdateTime || 0) <= 6000)
171
+ jsir.active = Date.now() - (jsir.lastUpdateTime || 0) <= 9000)
172
172
  return room;
173
173
  });
174
174
  }
@@ -177,7 +177,7 @@ async function initRoom() {
177
177
  let roomUpdateTouchTime = false;
178
178
  await fileJson(roomDataFile, async room => {
179
179
  await initRoomJsir(room)
180
- if (!vl(room.lastUpdateTime) || (Date.now() - room.lastUpdateTime) > 9000) {
180
+ if (!vl(room.lastUpdateTime) || (Date.now() - room.lastUpdateTime) > 3000) {
181
181
  roomUpdateTouchTime = true;
182
182
  }
183
183
  })
@@ -214,7 +214,7 @@ async function initRoomJsir(room) {
214
214
  busy: await getEventLoopDelay(),
215
215
  back: isRunningInBackground(),
216
216
  lastUpdateTime: Date.now(),
217
- port: setting.server.address().port
217
+ port: setting.server ? setting.server.address().port:null
218
218
  }
219
219
  console.$log("init jsir", process.pid)
220
220
  }
package/deps/server.js CHANGED
@@ -2,15 +2,14 @@ const http = require('http');
2
2
  const {createConsole, vl} = require('./util');
3
3
  const console = createConsole();
4
4
  const setting = require('../deps/setting')
5
-
6
5
  // 尝试监听的端口
7
6
  const preferredPort = 52108;
8
-
9
7
  // 路由存储
10
8
  const routes = {};
9
+ let invokeStart = false;
11
10
 
12
11
  // 创建一个 HTTP 服务
13
- function createServer(port) {
12
+ async function createServer(port) {
14
13
  const server = http.createServer(async (req, res) => {
15
14
  const method = req.method.toLowerCase();
16
15
  const url = req.url;
@@ -25,26 +24,28 @@ function createServer(port) {
25
24
  }
26
25
  });
27
26
 
28
- server.listen(port, () => {
29
- const address = server.address();
30
- console.$log(`Server listening on port ${address.port}`);
31
- });
32
-
33
- server.on('error', (err) => {
34
- console.$error(`Error occurred: ${err.message}`);
35
- });
36
-
37
- return server;
27
+ return await new Promise((resolve, reject) => {
28
+ server.listen(port, () => {
29
+ const address = server.address();
30
+ console.$log(`Server listening on port ${address.port}`);
31
+ resolve(server)
32
+ });
33
+ server.on('error', (err) => {
34
+ console.$log(`Error occurred: ${err.message}`);
35
+ reject(err)
36
+ });
37
+ })
38
38
  }
39
39
 
40
40
  // 尝试启动服务的逻辑
41
- function startServer() {
42
- if (!setting.server) {
41
+ async function startServer() {
42
+ if (!invokeStart) {
43
+ invokeStart = true;
43
44
  try {
44
- setting.server = createServer(preferredPort);
45
+ setting.server = await createServer(preferredPort);
45
46
  } catch (e) {
46
- console.$error("startServer failed", e)
47
- setting.server = createServer(0);
47
+ console.$log("startServer failed, try other port")
48
+ setting.server = await createServer(0);
48
49
  }
49
50
  }
50
51
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jsir",
3
- "version": "2.3.6",
3
+ "version": "2.3.8",
4
4
  "description": "JavaScript Script Management Tool",
5
5
  "main": "index.js",
6
6
  "scripts": {