#node.js #socket.io #static
#node.js #socket.io #статические
Вопрос:
Я создаю новое приложение, используя nodejs и socket.ввод-вывод для операций в реальном времени проблема возникла, когда я попытался установить статическое свойство, чтобы использовать его среди всех имеющихся у меня классов, то есть экземпляра ввода-вывода. что я делаю прямо сейчас, так это то, что я присваиваю свойство ввода-вывода при запуске сервера, а при попытке получить его из других классов возвращается значение null. это похоже на то, что для каждого require(‘./myclass’) он возвращает новый экземпляр файла.
вот мой класс, в котором я устанавливаю свой экземпляр ввода-вывода внутри конструктора
class IO {
constructor(io) {
IO.io = io;
ioService.foo ='asdasd';
// this.run();
}
}
вызывая его при запуске сервера внутри index.js:
const io = require('socket.io')(server, {serveClient: false});
const IO = require('./services/socket/io');
new IO(io);
вызов его из других классов
class Admin {
send(id, type, data) {
// console.log('IO.io' , io); // it prints null
switch (type) {
case 'ORDER_CREATED':
io.emit('message', {
type: 'ORDER_CREATED',
data: data
}); // error because io undefined
break;
}
}
}
Ответ №1:
Я решил свою проблему, используя «глобальный» в nodejs, все еще не убежденный в том, как я это сделал, и жду некоторых ответов.