Adição de funcionalidade para checar internet nas sessoes remotas
parent
a1cd7e3372
commit
bfad9fc0b2
|
@ -1,5 +1,5 @@
|
|||
# NUMBER AND NAME THAT WILL BE DISPLAYED ON CONSOLE
|
||||
MOBILEUID=5521995996701
|
||||
MOBILEUID=5517988310949
|
||||
MOBILENAME=test - S1
|
||||
|
||||
# PORT NUMBER FOR THIS API
|
||||
|
@ -16,7 +16,7 @@ DB_PASS=strongpassword
|
|||
DB_PORT=3306
|
||||
|
||||
# WHATSAPP ID OF THE TABLE Whatsapps FROM THE OMNIHIT DATABASE
|
||||
WHATSAPP_ID=229
|
||||
WHATSAPP_ID=223
|
||||
|
||||
# MONGO CONNECTION
|
||||
DB_MONGO_URL=mongodb://localhost:27017
|
||||
|
|
|
@ -40,6 +40,8 @@ const qrcode = require('qrcode-terminal')
|
|||
const omnihit = require('./funcs/omnihit.js')
|
||||
const { allowedNodeEnvironmentFlags } = require('process')
|
||||
|
||||
const checkInternetConnection = require('./helpers/checkIntenet')
|
||||
|
||||
const mongo = require('./funcs/mongoConn')
|
||||
|
||||
const db = mongo.db(process.env.DB_MONGO_NAME)
|
||||
|
@ -53,6 +55,7 @@ let scheduler_messages_outbound
|
|||
let scheduler_monitor
|
||||
let scheduler_monitor_cell
|
||||
let scheduler_campaign_monitor
|
||||
let scheduler_internet_conn
|
||||
|
||||
let client
|
||||
// const PORT = 80;
|
||||
|
@ -64,6 +67,7 @@ const { imageUpload } = require('./helpers/image-uploader')
|
|||
var QRCODE = "0"
|
||||
var mobileuid
|
||||
var destroy
|
||||
var changeInternetConn = true
|
||||
|
||||
let asking_qrcode = false
|
||||
|
||||
|
@ -991,7 +995,7 @@ async function monitor() {
|
|||
_nextime = 10000
|
||||
}
|
||||
|
||||
console.log(`WHATSAPP_ID: ${process.env.WHATSAPP_ID} | CLIENT MOBILEUID: ${mobileuid} | NAME: ${process.env.MOBILENAME} | ENV MOBILEUID: ${process.env.MOBILEUID} | STATUS: ${stat}`)
|
||||
console.log(`WHATSAPP_ID: ${process.env.WHATSAPP_ID} | CLIENT MOBILEUID: ${mobileuid} | NAME: ${process.env.MOBILENAME} | ENV MOBILEUID: ${process.env.MOBILEUID} | STATUS: ${stat} | INTERNET: ${changeInternetConn}`)
|
||||
|
||||
if (stat && stat === 'CONNECTED') {
|
||||
|
||||
|
@ -1019,7 +1023,24 @@ const sendCampaignMessage = async () => {
|
|||
try {
|
||||
clearInterval(scheduler_campaign_monitor)
|
||||
|
||||
if (mobileuid != undefined) {
|
||||
|
||||
let internetConnection = await checkInternetConnection()
|
||||
|
||||
if (!internetConnection) {
|
||||
changeInternetConn = false
|
||||
} else {
|
||||
changeInternetConn = true
|
||||
}
|
||||
|
||||
// let stat
|
||||
// try {
|
||||
// stat = await client.getState()
|
||||
// } catch (err) {
|
||||
// stat = (err?.message?.search('Session closed') > -1 ? 'SESSIONCLOSED' : 'UNKNOWN')
|
||||
// }
|
||||
// console.log('===========> stat: ', stat)
|
||||
|
||||
if (mobileuid != undefined && internetConnection) {
|
||||
|
||||
auxCampaignMessage = ''
|
||||
|
||||
|
@ -1137,6 +1158,25 @@ async function monitorCell() {
|
|||
}
|
||||
|
||||
|
||||
async function internetMonitor() {
|
||||
try {
|
||||
clearInterval(scheduler_internet_conn)
|
||||
|
||||
if (!changeInternetConn) {
|
||||
|
||||
console.log('INTERNET IS OFFLINE. THE PM2 WILL RESTORE THE PROCESS')
|
||||
|
||||
process.exit()
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
console.log(`Error on try kill the process from internetMonitor function`)
|
||||
} finally {
|
||||
scheduler_internet_conn = setInterval(internetMonitor, 60000)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function comercialBuss(until_hour) {
|
||||
const _hour = new Date().getHours()
|
||||
|
||||
|
@ -1155,6 +1195,8 @@ scheduler_monitor = setInterval(monitor, 10000)
|
|||
|
||||
scheduler_campaign_monitor = setInterval(sendCampaignMessage, 3000)
|
||||
|
||||
scheduler_internet_conn = setInterval(internetMonitor, 60000)
|
||||
|
||||
app.listen(process.env.PORT || 8003, function () {
|
||||
console.log("\u26A1[server]: Server is running at Port ::: " + process.env.PORT || 8003)
|
||||
})
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
const http = require('http')
|
||||
|
||||
const checkInternetConnection = async () => {
|
||||
const options = {
|
||||
hostname: 'www.google.com',
|
||||
port: 80,
|
||||
method: 'HEAD'
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
const req = http.request(options, (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
resolve(true)
|
||||
} else {
|
||||
resolve(false)
|
||||
}
|
||||
req.abort()
|
||||
})
|
||||
|
||||
req.on('error', (err) => {
|
||||
resolve(false)
|
||||
})
|
||||
|
||||
req.end()
|
||||
})
|
||||
};
|
||||
|
||||
// (async () => {
|
||||
// try {
|
||||
// const isConnected = await checkInternetConnection()
|
||||
// if (isConnected) {
|
||||
// console.log('Internet connection is available.')
|
||||
// } else {
|
||||
// console.log('Internet connection is not available.')
|
||||
// }
|
||||
// } catch (error) {
|
||||
// console.error('Error checking internet connection:', error)
|
||||
// }
|
||||
// })()
|
||||
|
||||
module.exports = checkInternetConnection
|
Loading…
Reference in New Issue