【发布时间】:2021-01-03 20:37:19
【问题描述】:
我创建了 Express、Node、React 应用程序。
现在,我想将 socket.io 集成到应用程序中。
我搜索了整个互联网,发现所有 socket.io 事件都在初始 server.js/app.js 文件中。
但是,我想将 socket.io 事件与主文件分开,然后将其导入主文件,就像路由/控制器文件一样。
我现在的代码:
var app = require("express")();
var http = require("http").createServer(app);
var io = require("socket.io")(http);
const mongoose = require("mongoose");
const stocks = require("./routes/stockRoutes");
const bodyParser = require("body-parser");
const cors = require("cors");
const port = 5000;
app.use(stocks);
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cors());
app.set("socketio", io);
const uri =
"mongodb+srv://admin:admin1234@investockcluster0.jp2wh.mongodb.net/<stocks_data>?retryWrites=true&w=majority";
mongoose.connect(uri, {
useNewUrlParser: true,
useCreateIndex: true,
useUnifiedTopology: true,
});
const connection = mongoose.connection;
connection.once("open", () => {
console.log("MongoDB database connection established successfully");
});
io.on("connection", (socket) => {
socket.emit("hello", "world");
console.log("New Connection");
});
http.listen(port, () => {
console.log(`Server is running on port: ${port}`);
});
我希望此代码位于“socketEvents.js”之类的文件中,然后需要它。
io.on("connection", (socket) => {
socket.emit("hello", "world");
console.log("New Connection");
});
非常感谢:)
【问题讨论】:
标签: node.js express websocket socket.io