Hai Stackoverflowers, Я пробовал так много способов, чтобы решить мою проблему, и в итоге я получил стек через поток
Язык программирования: Машинопись
мои главные цели: создать клиентский класс столько, сколько я хочу, и может включать и выключать клиент, клиент будет как бот, который отображает текст из списка друзей
Я используюnode-xmpp-client Библиотека: https://github.com/chris-rock/node-xmpp-client
Мой код:
import * as Client from 'node-xmpp-client'; // Jabber Helper
export class TerminalJabber {
private ter;
private client;
constructor(ter: any) {
this.ter = ter;
this.client = new Client({
jid: this.ter.settings.username,
password: this.ter.settings.password,
});
}
public turnOn(){
// Turn on Jabber
this.client.on('online', () => {
console.log('online');
const stanza = new Client.Element('presence', { })
.c('show').t('chat').up()
.c('status').t('Happily echoing your <message/> stanzas');
this.client.send(stanza);
});
this.client.on('stanza', (stanza) => {
// Message come here and will echo from here
});
// Catch error
this.client.on('error', (e) => {
console.log('------>', e);
});
}
// Turn Off Jabber
public turnOff () {
// Turn Off Jabber
this.client.end();
return true;
}
}
Проблема в том, Бот может запуститься, ноникогда не будет отключаться, когда я вызываю новый класс и turnOn () и turnOff ().
Как я вызываю мой код: // Hit URL / turnOn /: terId
// Hit URL
app.router.get(/turnOn/:id, turnOnController); // for turn On
app.router.get(/turnOff/:id, turnOfController); // for turn Off
TurnOnController(){
// Get data from database using id
const data = Query ~ ;
const terminal = new TerminalId(data)
terminal.turnOn();
}
TurnOffController(){
// Get data from database using id
const data = Query ~ ;
const terminal = new TerminalID(data)
terminal.turnOff();
}
Может быть, у вас есть решение моих проблем?Я думал и читал так много постов о xmpp, но я не могу решить эту проблему,
Пожалуйста, помогите
искренне, Спасибо