diff --git a/index.js b/index.js index f592736..4602ae2 100755 --- a/index.js +++ b/index.js @@ -45,10 +45,20 @@ import WebSocket, { WebSocketServer } from "ws"; const wss = new WebSocketServer({ noServer: true }); // let openSockets = 0; wss.on("connection", function connection(ws, req, res) { - ws.send(`online=${wss.clients.size}`); - setInterval(() => { - ws.send(`online=${wss.clients.size}`); - }, 10000); + // ws.send(`online=${wss.clients.size}`); + // setInterval(() => { + // ws.send(`online=${wss.clients.size}`); + // }, 10000); + let server = new WebSocket("ws://localhost:7910"); + + server.on("message", async function message(data) { + let message = Buffer.from(data).toString(); + if(message.startsWith("online")) { + ws.send(message); + } else if(message.startsWith("annc")) { + ws.send(message); + } + }) ws.on("error", console.error); @@ -67,9 +77,10 @@ wss.on("connection", function connection(ws, req, res) { } else if (message.startsWith("annc")) { let splitMessage = message.split(";;"); if(await isAdmin(splitMessage[1])) { - wss.clients.forEach(client => { - client.send(`annc;;${splitMessage[2]};;${splitMessage[3]}`); - }) + // wss.clients.forEach(client => { + // client.send(`annc;;${splitMessage[2]};;${splitMessage[3]}`); + // }) + server.send(message); } } }); diff --git a/package.json b/package.json index 7c0c8c6..b86917c 100755 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "description": "", "exports": "./index.js", "scripts": { + "websocket_server": "bun --watch websocket.js", "start": "bun --watch index.js", "svg": "node svg-converter.js" }, diff --git a/websocket.js b/websocket.js new file mode 100644 index 0000000..1bfc22f --- /dev/null +++ b/websocket.js @@ -0,0 +1,33 @@ +import WebSocket, { WebSocketServer } from "ws"; +const wss = new WebSocketServer({ noServer: true }); + +wss.on("connection", function connection(ws, req, res) { + ws.send(`online=${wss.clients.size}`); + setInterval(() => { + ws.send(`online=${wss.clients.size}`); + }, 10000); + + ws.on("message", async function message(data, isBinary) { + let message = Buffer.from(data).toString(); + if (message.startsWith("annc")) { + let splitMessage = message.split(";;"); + wss.clients.forEach(client => { + client.send(`annc;;${splitMessage[2]};;${splitMessage[3]}`); + }) + } + }); + + ws.on("close", () => {}); +}); +let port = 7910; +import express from "express"; +const app = express(); +const server = app.listen(port, () => { + console.log("Websocket server is online."); + console.log("- http://localhost:" + port); +}); +server.on("upgrade", (request, socket, head) => { + wss.handleUpgrade(request, socket, head, (socket) => { + wss.emit("connection", socket, request); + }); +}); \ No newline at end of file