我在节点服务器中使用套接字io,在那里我在server.js(这是我的根文件)中初始化了套接字io。这就是我所实现的,
const io = require('socket.io’)(server);
io.on('connection', function(socket) {
socket.on(‘test1’, function(data) {
io.sockets.emit(“test2”, data);
}); });
问题是,它仅在server.js内部可用。在某些情况下,例如我想在控制器内部释放套接字,情况会变得有些复杂。因此,我正在考虑将套接字作为一个通用文件进行分离,并在整个应用程序中使用它。我该如何实现,欢迎提出建议。预先感谢。
答案 0 :(得分:0)
您可以按照以下说明进行操作: 1)首先为socketio制作一个单独的文件 并使用代码
const socket_io = require("socket.io");
const io = socket_io();
var Socket = {
emit: function(event, data) {
io.sockets.emit(event, data);
}
};
io.on("connection", function(socket) {
console.log("A user connected");
});
2)现在在您的服务器文件上可以初始化服务器上的套接字
const { io } = require("../utils/socket");
var server = http.createServer(app);
io.attach(server);
3)现在,您可以在控制器上使用const { Socket } = require("../../utils/socket");
来导入和使用发射函数