Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要将socket.io类更改为singleton_Javascript_Node.js_Sockets_Socket.io_Singleton - Fatal编程技术网

Javascript 需要将socket.io类更改为singleton

Javascript 需要将socket.io类更改为singleton,javascript,node.js,sockets,socket.io,singleton,Javascript,Node.js,Sockets,Socket.io,Singleton,使socket.io成为单例的最佳方法是什么?这里有三个文件需要在user.mjs中使用socket.io方法 插座.mjs 如何访问socket.io方法?任何帮助都将不胜感激 www.mjs 导出实例: export default new socketBusiness; 如果导出单例,则无法在构造函数中传递io。将初始化逻辑移动到方法: constructor() { } init(io) { this.io = io; this.bindEvents(); } 然后,在获

使socket.io成为单例的最佳方法是什么?这里有三个文件需要在user.mjs中使用socket.io方法

插座.mjs 如何访问socket.io方法?任何帮助都将不胜感激

www.mjs 导出实例:

 export default new socketBusiness;
如果导出单例,则无法在构造函数中传递io。将初始化逻辑移动到方法:

constructor() { }

init(io) {
  this.io = io;
  this.bindEvents();
}
然后,在获得套接字时初始化singleton:

var io = new SocketServer(server, {})
socket.init(io);

当我使用新关键字“无法读取未定义的”的属性“on”时出现此错误
export default new socketBusiness()
您错过了braces@AZ_这些是可选的。@AbtisamAhmed right,原因
io
未传递到构造函数。@Jonaswillms我们可以用什么方法使socket.io多线程化吗?您正在使用
socket
从“../socket.mjs”导入socket
并使用
socketBusiness
var sb=new socketBusiness(io)创建对象。应该是
newsocket(io)
Import不是问题,我只是展示了我的问题示例,这里可能有一些输入错误
 export default new socketBusiness;
constructor() { }

init(io) {
  this.io = io;
  this.bindEvents();
}
var io = new SocketServer(server, {})
socket.init(io);