您好我正在尝试在我的主 server.js 文件以外的文件中使用socket.io,我首先将其设置为:
const app = require('express')();
const http = require('http').createServer(app);
const mongoose = require('mongoose');
const io = require('socket.io')(http);
io.on('connection', (socket) => {
console.log('a user connected');
socket.on('disconnect', () => {
console.log('user disconnected');
});
});
由于我在server.js文件中进行设置,因此我必须侦听此文件中的事件,因此回调函数只能访问此文件的范围。但是我需要在我已经设置的路径中的另一个文件中使用它,例如:
app.use('/', home);
感谢。
答案 0 :(得分:1)
将套接字逻辑写入函数内的另一个文件中,并从server.js中调用它。
<强> socket.js 强>
const io = require('socket.io');
module.exports = function(server) {
io(server).on('connection', (socket) => {
console.log('a user connected');
socket.on('disconnect', () => {
console.log('user disconnected');
});
});
}
并在 server.js
中const app = require('express')();
const http = require('http').createServer(app);
const mongoose = require('mongoose');
require("./socket")(http)