Делаю приложение.
Фронтенд на Vue JS
Бэкенд на Node JS(express)
Имеется общий файл с методами socket.io - server.js
В этом файле описано вообще всё.
Я бы хотел перенести методы для каждого роута в отдельный файл, и чтобы каждый компонент на клиенте слушал и отправлял сообщения только на конкретный роут
Текущий результат:
Во vue js в кмопоненте прописан роут, по которому нужно отправлять или слушать методы:
import io from "socket.io-client";
const socket = io("http://localhost:11050");
created() {
this.$socket.$subscribe("newNumber", (user) => {
this.addUser(user);
});
},
addUser(user) {
console.log(user);
this.usersSeries[0].data.push(user);
this.usersSeries = [
{
data: this.usersSeries[0].data,
},
];
},
}
В express все методы прописаны в одном файле:
const express = require("express");
const app = express();
server = app.listen(11050, function () {
console.log("server is running on port 11050");
});
const io = require("socket.io")(server);
io.on("connection", (socket) => {
console.log("Users component is connected");
socket.on("disconnect", () => {
console.log("Users component was disconnected");
});
setInterval(() => {
socket.emit("newNumber", generateRandomNumber());
}, 1000);
});
function generateRandomNumber() {
let number = Math.floor(Math.random() * 100);
const dateTime = new Date().getTime();
let item = {
x: dateTime,
y: number,
};
return item;
}
Ожидаемый результат:
Во vue js прописывается конкретный путь в каждом компоненте,и идет прослушка методов толкьо конкретного роута
const socket = io("
localhost:11050/users");
В express как-то нужно создать файл и переместить методы из общего файла в файл только для конкретного роута
Как это можно сделать?