Как экспортировать экземпляр Socket.io в другие файлы проекта - PullRequest
1 голос
/ 16 апреля 2019

Я новичок в Web Dev, особенно в узле, и я борюсь с socket.io. Проблема в том, что мне нужно экспортировать «io» в другой файл для отправки сообщений, но он не работает, потому что я, вероятно, делаю это неправильно.

Я перепробовал многие решения stackOverflow, но не смог добиться успеха.

Два файла являются server.js, где находится конфигурация сокета:

let server = http.createServer(app);
let io_fin=io_test.listen(server);
module.exports= io_test;

и в том же файле мой "запрос на выброс" работает:

io_fin.on('connection', function(socket){
    console.log('an user connected');

    socket.emit('chat message', 'TESTING');
  });

В другом файле у меня есть этот импорт:

let yoyo = require('socket.io');

и я пытаюсь излучать так:

yoyo.emit('chat message', 'TEST2');

И API падает, говоря: «yoyo.emit - это не функция».

Я пробовал много разных способов его экспорта, например:

  • module.exports = io_test (сервер);

  • module.exports = io_fin;

  • module.exports = io_test.listen (сервер);

  • и т.д ..

И я чувствую, что делаю, я пропустил ключевую концепцию сокетов, потому что я полностью застрял! Извините за эту проблему "newbye", но я чувствую, что действительно хотел бы помочь. Заранее спасибо.

1 Ответ

0 голосов
/ 16 апреля 2019

let yoyo = require('socket.io') Эта строка требует, новой функции , socket.io.

Вы экспортируете в свой server.js, поэтому вам нужно импортировать из , чтофайл как:

// assuming the file you're importing from is in the same folder as server.js
let yoyo = require('./server');
...