我在文件whatsappWebSession
中有一个类。
import { Client, LocalAuth } from "whatsapp-web.js";
class WhatsappWebSession {
constructor(callback, readyCallback) {
this.client = new Client({
puppeteer: {
headless: true,
args: \[
'--no-sandbox',
\]
},
authStrategy: new LocalAuth({
clientId: 'client-id',
dataPath: './session.json',
})
});
this.client.on('qr', (qr) =\> {
this.qr = qr;
callback(qr);
});
this.client.on('ready', () =\> {
console.log('Client is ready!');
readyCallback();
});
this.client.initialize();
}
getQr() {
return this.qr;
}
getClient() {
return this.client;
}
async destroy() {
await this.client.destroy();
}
async restart() {
await this.destroy();
this.client = new Client();
this.client.on('qr', (qr) => {
this.qr = qr;
});
this.client.initialize();
}
}
export default WhatsappWebSession;
现在,在一个快速的API调用中,例如/new-client?id=client-id
。
我为这个类创建了一个新对象。
我想要的是创建几个这个类的对象,它们保持在后台运行,并且我可以通过客户端ID获取任何客户端,就像session.getClient(client-id)一样。
如何实现这一点?
我尝试使用authstrategy每次创建一个新对象,然后在API响应关闭后销毁它。 但是这非常慢。