I have a server built with ExpressJS. Now, I wish to access my socket io instance from anywhere in my app after initialization, so I tried keeping it in a static method.
But, whenever I invoke the static method I keep getting this error:
AppServer.getServerSocket is not a function
Here is my code:
const ServerSocket = require('./sockets/server_socket');
class AppServer {
constructor() {
this.initServerSocket(server);
}
initServerSocket(server) {
this.serverSocket = new ServerSocket(server);
}
static getServerSocket() { //Whenever I invoke this I keep getting the error: AppServer.getServerSocket is not a function
return this.serverSocket;
}
start() {
const port = process.env.PORT || 8000;
server.listen(port, function () {
console.log(`Server running on port ${port} in ${app.get("env")} mode`);
});
}
}
let appServer = new AppServer();
appServer.start();
module.exports = AppServer;
Here is how I tried accessing it in another file
...
const AppServer = require('../server');
function emitEvent(event){
AppServer.getServerSocket().io.emit(event); //Error, AppServer.getServerSocket is not a function
}
How can I resolve this, please?