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 +4 -4
- package/deps/server.js +19 -18
- package/package.json +1 -1
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
|
|
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
|
-
|
|
34
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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 (!
|
|
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.$
|
|
47
|
-
setting.server = createServer(0);
|
|
47
|
+
console.$log("startServer failed", e)
|
|
48
|
+
setting.server = await createServer(0);
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
}
|