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.
Files changed (2) hide show
  1. package/index.js +92 -136
  2. 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
- const PORT = 8080;
8
-
9
- // Initialize SQLite database
10
- const db = new sqlite3.Database("./server.db");
11
-
12
- db.serialize(() => {
13
- db.run(`
14
- CREATE TABLE IF NOT EXISTS messages (
15
- id INTEGER PRIMARY KEY AUTOINCREMENT,
16
- type TEXT,
17
- payload TEXT,
18
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP
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
- socket.on("close", () => {
138
- console.log("Client disconnected");
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
- socket.on("error", (err) => {
143
- console.log("WebSocket error:", err.message);
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
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "npmkekw",
3
- "version": "2.0.4",
3
+ "version": "2.0.5",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {