Как экспортировать сокет.экземпляр ввода-вывода в другие файлы проекта

#node.js #server #socket.io #export #emit

#node.js #сервер #socket.io #экспорт #испускать

Вопрос:

Я новичок в веб-разработке, особенно в node, и я борюсь с socket.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:

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');