Node.js 如何在Express.js中分割多个文件之间的套接字io连接?
我有一个带有socket.io的Express.js应用程序 我有一个主文件(server.js)和路由文件夹用于路由 我想在我的应用程序中的不同路由之间拆分socket.io路径连接 例如: 如果前端应用程序(在我的例子中是Vue.js)连接到pathhttp://localhost:11050/overwatch socket.io应侦听并发出路由“/overwatch”上的消息 如果前端应用程序连接到http://localhost:11050/starcraft socket.io应该监听并发出路由“/星际争霸”上的事件 如何在express app中拆分多个路由之间的socket.io连接? 我现在所拥有的: 在我的前端应用程序(Vue js)中只有一条路线有效 如果我在Vue js的开始处点击第一个路由,第二个路由不起作用,如果我先加载第二个路由,第一个路由不起作用。似乎只有一条路径适用于socket.io Express应用程序: overwatch.js文件:Node.js 如何在Express.js中分割多个文件之间的套接字io连接?,node.js,express,vue.js,socket.io,routes,Node.js,Express,Vue.js,Socket.io,Routes,我有一个带有socket.io的Express.js应用程序 我有一个主文件(server.js)和路由文件夹用于路由 我想在我的应用程序中的不同路由之间拆分socket.io路径连接 例如: 如果前端应用程序(在我的例子中是Vue.js)连接到pathhttp://localhost:11050/overwatch socket.io应侦听并发出路由“/overwatch”上的消息 如果前端应用程序连接到http://localhost:11050/starcraft socket.io应该监
module.exports = function (io) {
const overwatch = io.of("/overwatch");
overwatch.on("connection", (socket) => {
console.log("overwatch is connected");
socket.on("disconnect", () => {
clearInterval(usersInterval);
});
socket.on("disconnect", () => {
console.log("overwatch was disconnected");
});
socket.on("changeUsersNumber", (data) => {
maxNumber = data;
});
/*generate users number*/
const usersInterval = setInterval(() => {
socket.emit(
"newNumber",
randomUsers.generateRandomUsers(5000, maxNumber)
);
}, 2000);
}
}
starcraft.js文件:
server.js文件:
如何在Vue JS中使用socket.io:
module.exports = function (io) {
const starcraft = io.of("/starcraft");
/*listen to events*/
starcraft.on("connection", (socket) => {
console.log(`Starcraft ${socket.id} is connected`);
socket.on("disconnect", () => {
console.log(`Starcraft ${socket.id} was disconnected`);
clearInterval(usersInterval);
});
/*generate users number*/
const usersInterval = setInterval(() => {
socket.emit(
"generateUsers",
randomUsers.generateRandomUsers(5000, maxNumber)
);
}, 2300);
});
};
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);
require("./routes/overwatch")(io);
require("./routes/starcraft")(io);
import VueSocketIOExt from "vue-socket.io-extended";
import Vue from "vue";
import io from "socket.io-client";
const socket = io("http://localhost:11050/starcraft");
Vue.use(VueSocketIOExt, socket);
created() {
this.$socket.client.on("generateUsers", (user) => {
console.log(user);
this.addUser(user);
});
},
beforeDestroy() {
this.$socket.client.off("generateUsers");
},