jsir 2.3.5 → 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
  }
@@ -117,7 +117,7 @@ async function syncRooms() {
117
117
  await fileLock(roomsDirLockKey, async () => {
118
118
  for (let syncRoom of syncRooms) {
119
119
  if (syncRoom.selfNode) {
120
- await fp.writeFile(syncRoom.selfNode, JSON.stringify(syncRoom, null, 2))
120
+ await fp.writeFile(roomsDir + "/" + syncRoom.selfNode, JSON.stringify(syncRoom, null, 2))
121
121
  }
122
122
  }
123
123
  })
@@ -148,6 +148,9 @@ async function _syncSetting(room) {
148
148
  let rooms = []
149
149
  let files = await fp.readdir(roomDir);
150
150
  for (let node of setting.selfRoom.nodes) {
151
+ if (setting.selfRoom.selfNode === node) {
152
+ continue
153
+ }
151
154
  if (files.indexOf(node) !== -1) {
152
155
  let resp = String(await fp.readFile(roomDir + '/' + node));
153
156
  let room = JSON.parse(resp);
@@ -211,7 +214,7 @@ async function initRoomJsir(room) {
211
214
  busy: await getEventLoopDelay(),
212
215
  back: isRunningInBackground(),
213
216
  lastUpdateTime: Date.now(),
214
- port: setting.server.address().port
217
+ port: setting.server ? setting.server.address().port:null
215
218
  }
216
219
  console.$log("init jsir", process.pid)
217
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.5",
3
+ "version": "2.3.7",
4
4
  "description": "JavaScript Script Management Tool",
5
5
  "main": "index.js",
6
6
  "scripts": {