Переработаны роутеры приложения
Переписано APi WebSocket для работы с новыми роутерами
This commit is contained in:
6
ws/routes/connection.js
Normal file
6
ws/routes/connection.js
Normal file
@@ -0,0 +1,6 @@
|
||||
const { broadcast } = require("../utils/broadcaster");
|
||||
|
||||
module.exports = (wss, ws, message) => {
|
||||
console.log(`🔗 Connection event from ${ws.user.name}`);
|
||||
broadcast(wss, { event: "user_connected", user: {name: ws.user.name, id: ws.user.id } });
|
||||
};
|
||||
18
ws/routes/index.js
Normal file
18
ws/routes/index.js
Normal file
@@ -0,0 +1,18 @@
|
||||
const connectionRoute = require("./connection");
|
||||
const messageRoute = require("./message");
|
||||
|
||||
const routes = {
|
||||
connection: connectionRoute,
|
||||
message: messageRoute,
|
||||
};
|
||||
|
||||
function routeMessage(wss, ws, message) {
|
||||
const handler = routes[message.event];
|
||||
if (handler) {
|
||||
handler(wss, ws, message);
|
||||
} else {
|
||||
ws.send(JSON.stringify({ error: `Unknown event: ${message.event}` }));
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { routeMessage };
|
||||
25
ws/routes/message.js
Normal file
25
ws/routes/message.js
Normal file
@@ -0,0 +1,25 @@
|
||||
const { updateApartment } = require("../services/apartments.service");
|
||||
const { updateBuilding } = require("../services/buildings.service");
|
||||
const { updateStand } = require("../services/stand.service");
|
||||
const { broadcast } = require("../utils/broadcaster");
|
||||
|
||||
module.exports = async (wss, ws, message) => {
|
||||
try {
|
||||
switch (message.type) {
|
||||
case "apartment":
|
||||
await updateApartment(ws.user, message.data);
|
||||
break;
|
||||
case "building":
|
||||
await updateBuilding(ws.user, message.data);
|
||||
break;
|
||||
case "stand":
|
||||
await updateStand(ws.user, message.data);
|
||||
break;
|
||||
default:
|
||||
return ws.send(JSON.stringify({ error: `Unknown message type: ${message.type}` }));
|
||||
}
|
||||
broadcast(wss, message);
|
||||
} catch (err) {
|
||||
ws.send(JSON.stringify({ error: err.message }));
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user