Я создаю новое приложение, использующее nodejs и socket.io для операций в реальном времени, проблема возникла, когда я попытался установить статическое свойство для использования его среди всех моих классов, то есть экземпляра io. сейчас я назначаю свойство io при запуске сервера, а при попытке получить его из других классов возвращается null.
это похоже на каждое требование ('./ myclass'), которое возвращает новый экземпляр файла.
вот мой класс, где я устанавливаю свой экземпляр io внутри конструктора
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;
}
}
}