npmkekw 2.0.4 → 2.0.5
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/index.js +92 -136
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -4,142 +4,98 @@ import fs from "fs";
|
|
|
4
4
|
|
|
5
5
|
import { fetchMusical } from "./misc/tcp.js";
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
)
|
|
20
|
-
`);
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
// Simple fs usage example
|
|
24
|
-
if (!fs.existsSync("./data")) {
|
|
25
|
-
fs.mkdirSync("./data");
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const wss = new WebSocketServer({
|
|
29
|
-
port: PORT,
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
console.log(`WebSocket server running on ws://localhost:${PORT}`);
|
|
33
|
-
fetchMusical();
|
|
34
|
-
|
|
35
|
-
wss.on("connection", (socket) => {
|
|
36
|
-
console.log("Client connected");
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
socket.on("message", (rawMessage) => {
|
|
40
|
-
let message;
|
|
41
|
-
|
|
42
|
-
try {
|
|
43
|
-
message = JSON.parse(rawMessage.toString());
|
|
44
|
-
} catch (err) {
|
|
45
|
-
console.log("Invalid JSON received");
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const { type } = message;
|
|
50
|
-
|
|
51
|
-
console.log("Received message type:", type);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
switch (type) {
|
|
55
|
-
|
|
56
|
-
case "ping":
|
|
57
|
-
console.log("Ping received");
|
|
58
|
-
socket.send(JSON.stringify({
|
|
59
|
-
type: "pong",
|
|
60
|
-
message: "Server is alive"
|
|
61
|
-
}));
|
|
62
|
-
break;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
case "message":
|
|
66
|
-
console.log("Chat message:", message);
|
|
67
|
-
break;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
case "transaction":
|
|
71
|
-
console.log("Transaction received:", message);
|
|
72
|
-
|
|
73
|
-
db.run(
|
|
74
|
-
"INSERT INTO messages(type, payload) VALUES (?, ?)",
|
|
75
|
-
[
|
|
76
|
-
"transaction",
|
|
77
|
-
JSON.stringify(message)
|
|
78
|
-
]
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
break;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
case "help":
|
|
85
|
-
console.log("Help requested");
|
|
86
|
-
|
|
87
|
-
socket.send(JSON.stringify({
|
|
88
|
-
type: "help",
|
|
89
|
-
availableTypes: [
|
|
90
|
-
"ping",
|
|
91
|
-
"message",
|
|
92
|
-
"transaction",
|
|
93
|
-
"help",
|
|
94
|
-
"update",
|
|
95
|
-
"sync",
|
|
96
|
-
"desync",
|
|
97
|
-
"leave",
|
|
98
|
-
"join"
|
|
99
|
-
]
|
|
100
|
-
}));
|
|
101
|
-
|
|
102
|
-
break;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
case "update":
|
|
106
|
-
console.log("Update received:", message);
|
|
107
|
-
break;
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
case "sync":
|
|
111
|
-
console.log("Sync request:", message);
|
|
112
|
-
break;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
case "desync":
|
|
116
|
-
console.log("Desync request:", message);
|
|
117
|
-
break;
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
case "leave":
|
|
121
|
-
console.log("Client leaving:", message);
|
|
122
|
-
break;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
case "join":
|
|
126
|
-
console.log("Client joined:", message);
|
|
127
|
-
break;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
default:
|
|
131
|
-
console.log("Unknown message type:", type);
|
|
132
|
-
break;
|
|
133
|
-
}
|
|
7
|
+
export async function startWebSocketServer() {
|
|
8
|
+
const PORT = 8080;
|
|
9
|
+
const db = new sqlite3.Database("./server.db");
|
|
10
|
+
db.serialize(() => {
|
|
11
|
+
db.run(`
|
|
12
|
+
CREATE TABLE IF NOT EXISTS messages (
|
|
13
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
14
|
+
type TEXT,
|
|
15
|
+
payload TEXT,
|
|
16
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
17
|
+
)
|
|
18
|
+
`);
|
|
134
19
|
});
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
20
|
+
if (!fs.existsSync("./server.db")) {
|
|
21
|
+
fs.mkdirSync("./server_output_error_log");
|
|
22
|
+
}
|
|
23
|
+
const wss = new WebSocketServer({
|
|
24
|
+
port: PORT,
|
|
139
25
|
});
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
26
|
+
fetchMusical();
|
|
27
|
+
wss.on("connection", (socket) => {
|
|
28
|
+
console.log("Client connected");
|
|
29
|
+
socket.on("message", (rawMessage) => {
|
|
30
|
+
let message;
|
|
31
|
+
try {
|
|
32
|
+
message = JSON.parse(rawMessage.toString());
|
|
33
|
+
} catch (err) {
|
|
34
|
+
console.log("Invalid JSON received");
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const { type } = message;
|
|
38
|
+
console.log("Received message type:", type);
|
|
39
|
+
switch (type) {
|
|
40
|
+
case "ping":
|
|
41
|
+
console.log("Ping received");
|
|
42
|
+
socket.send(JSON.stringify({
|
|
43
|
+
type: "pong",
|
|
44
|
+
message: "Server is alive"
|
|
45
|
+
}));
|
|
46
|
+
break;
|
|
47
|
+
case "message":
|
|
48
|
+
console.log("Chat message:", message);
|
|
49
|
+
break;
|
|
50
|
+
case "transaction":
|
|
51
|
+
console.log("Transaction received:", message);
|
|
52
|
+
db.run(
|
|
53
|
+
"INSERT INTO messages(type, payload) VALUES (?, ?)",
|
|
54
|
+
["transaction", JSON.stringify(message)]
|
|
55
|
+
);
|
|
56
|
+
break;
|
|
57
|
+
case "help":
|
|
58
|
+
console.log("Help requested");
|
|
59
|
+
socket.send(JSON.stringify({
|
|
60
|
+
type: "help",
|
|
61
|
+
availableTypes: [
|
|
62
|
+
"ping",
|
|
63
|
+
"message",
|
|
64
|
+
"transaction",
|
|
65
|
+
"help",
|
|
66
|
+
"update",
|
|
67
|
+
"sync",
|
|
68
|
+
"desync",
|
|
69
|
+
"leave",
|
|
70
|
+
"join"
|
|
71
|
+
]
|
|
72
|
+
}));
|
|
73
|
+
break;
|
|
74
|
+
case "update":
|
|
75
|
+
console.log("Update received:", message);
|
|
76
|
+
break;
|
|
77
|
+
case "sync":
|
|
78
|
+
console.log("Sync request:", message);
|
|
79
|
+
break;
|
|
80
|
+
case "desync":
|
|
81
|
+
console.log("Desync request:", message);
|
|
82
|
+
break;
|
|
83
|
+
case "leave":
|
|
84
|
+
console.log("Client leaving:", message);
|
|
85
|
+
break;
|
|
86
|
+
case "join":
|
|
87
|
+
console.log("Client joined:", message);
|
|
88
|
+
break;
|
|
89
|
+
default:
|
|
90
|
+
console.log("Unknown message type:", type);
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
socket.on("close", () => {
|
|
95
|
+
console.log("Client disconnected");
|
|
96
|
+
});
|
|
97
|
+
socket.on("error", (err) => {
|
|
98
|
+
console.log("WebSocket error:", err.message);
|
|
99
|
+
});
|
|
144
100
|
});
|
|
145
|
-
}
|
|
101
|
+
};
|