orkestral / venom

Venom is a high-performance system developed with JavaScript to create a bot for WhatsApp, support for creating any interaction, such as customer service, media sending, sentence recognition based on artificial intelligence and all types of design architecture for WhatsApp.
https://orkestral.io
Apache License 2.0
6.08k stars 1.2k forks source link

Hook de buscar status da sessão/conexão #2497

Closed junplid closed 6 months ago

junplid commented 1 year ago

Boa tarde, a possibilidade de buscar os status da sessão usando uma função, como: getStatusSession('session-name')? já pesquisei sobre o assunto e não encontrei até o momento.

Basicamente, eu crio uma sessão a cada evento do socket.io(então são varias sessões) e preciso depois recuperar se essa sessão está conectada ou não via request ou via socket.io propriamente dita.

Sei que tem como ver os status da conexão com: client.isConnected();, mas só em tempo de execução dentro do escopo da criação da conexão, mas no meu caso eu precisaria saber se existe um hook para saber os status da sessão em outro ambiente da aplicação, como: import { getStatusSession } from 'venom-bot'

junplid commented 1 year ago

@orkestral @jonalan7

eltonjhsouza commented 1 year ago

@ousadojunplid , conseguiu algo? Como paliativo eu recrio a sessão toda vez que preciso utilizar algum recurso da API. Fiz essa "gambiarra" para garantir que a sessão esteja ativa sempre que o usuário solicitar algo. Mas para isso perdi em performance pois preciso aguardar o tempo da sessão ser criada novamente para só então seguir o fluxo

junplid commented 11 months ago

@ousadojunplid , conseguiu algo? Como paliativo eu recrio a sessão toda vez que preciso utilizar algum recurso da API. Fiz essa "gambiarra" para garantir que a sessão esteja ativa sempre que o usuário solicitar algo. Mas para isso perdi em performance pois preciso aguardar o tempo da sessão ser criada novamente para só então seguir o fluxo

Desculpa a demora para responder.

No meu caso eu coloco a sessão em um Map:

const venom = require('venom-bot');

const sessionsCache = new Map()

venom.create({session: 'session-name'})
  .then((client) => session.set('new-client', client))
  .catch((erro) => console.log(erro));

module.exports = { sessionsCache }

Amigo, nesse caso é importante você encapsular em uma promise para primeiro inicia as conexões e só depois o seu servidor

const startConnections = () => new Promise(res => {
  // `loop for` para criar/re-conectar as sessões
  res('Sessões iniciadas com sucesso')
})

module.exports = { startConnections }

Mas não utilizo mais o Venom e mudei para uma melhor justamente pelo fator "desempenho". Isso é tudo amigo, boa sorte :)

orkestral commented 6 months ago

New Release: npm i venom-bot@5.1.0 We have support for Venom for just $15 per month, if you are interested, call our support via the link: https://web.whatsapp.com/send?phone=5561985290357

jpliraa commented 5 months ago

@ousadojunplid , conseguiu algo? Como paliativo eu recrio a sessão toda vez que preciso utilizar algum recurso da API. Fiz essa "gambiarra" para garantir que a sessão esteja ativa sempre que o usuário solicitar algo. Mas para isso perdi em performance pois preciso aguardar o tempo da sessão ser criada novamente para só então seguir o fluxo

Desculpa a demora para responder.

No meu caso eu coloco a sessão em um Map:

const venom = require('venom-bot');

const sessionsCache = new Map()

venom.create({session: 'session-name'})
  .then((client) => session.set('new-client', client))
  .catch((erro) => console.log(erro));

module.exports = { sessionsCache }

Amigo, nesse caso é importante você encapsular em uma promise para primeiro inicia as conexões e só depois o seu servidor

const startConnections = () => new Promise(res => {
  // `loop for` para criar/re-conectar as sessões
  res('Sessões iniciadas com sucesso')
})

module.exports = { startConnections }

Mas não utilizo mais o Venom e mudei para uma melhor justamente pelo fator "desempenho". Isso é tudo amigo, boa sorte :)

a cual mudo?