jsir 2.3.6 → 2.3.7

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
  }
@@ -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", e)
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.7",
4
4
  "description": "JavaScript Script Management Tool",
5
5
  "main": "index.js",
6
6
  "scripts": {