Node js中的通用套接字IO控制器

时间:2019-02-27 05:19:09

标签: node.js socket.io

我在节点服务器中使用套接字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内部可用。在某些情况下,例如我想在控制器内部释放套接字,情况会变得有些复杂。因此,我正在考虑将套接字作为一个通用文件进行分离,并在整个应用程序中使用它。我该如何实现,欢迎提出建议。预先感谢。

1 个答案:

答案 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");来导入和使用发射函数

相关问题