Как отправить данные из другого файла клиенту через Socket.IO? - PullRequest
0 голосов
/ 16 октября 2018

У меня есть функция в file2.js, которая создает некоторые данные.Эти данные должны идти в file1.js и должны быть отправлены оттуда клиенту.Как мне это сделать?

app.js:

var app    = express();
var server = require('http').createServer(app);
var io     = require('socket.io')(server);
var file1  = require('./file1')(io);

file1.js:

var file2 = require('./file2');

//This is how it usually works if I want to interact with a client:
module.exports = function(io) {
  io.on('connection', function (socket) {
    socket.on('channel_x', function (data, callback) {});
  });
}

//What if I want to send (emit) data which comes from another file to the client?
exports.functionInFile1 = function(exampleDataFromFile2) {
  //How to send "exampleDataFromFile2" to client from here?
}

file2.js:

var file1 = require('./file1');

function functionInFile2() {
  //do something
  var exampleData = {some: "data"};
  file1.functionInFile1(exampleData);
}

functionInFile2();

1 Ответ

0 голосов
/ 16 октября 2018

Почему бы вам не предоставить io экземпляр file2, требуя его точно так же, как file1, а затем отправить данные клиенту оттуда непосредственно.

file2.js

function functionInFile2(io) {
    //do something
    var exampleData = { some: "data" };
    io.emit('message', exampleData);
}

module.exports = functionInFile2;

file1.js

var functionFile2 = require('./file2');

module.exports = function(io) {
    io.on('connection', function(socket) {
        socket.on('channel_x', function(data, callback) { });
    });
    functionFile2(io);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...