50 lines
2.6 KiB
JavaScript
50 lines
2.6 KiB
JavaScript
$(window).on("load", function () {
|
|
const connectOptions = {
|
|
path: '/ws-counters/',
|
|
transports: ['websocket', 'polling']
|
|
};
|
|
var agencyId = $('#session_agency_id').val();
|
|
if (agencyId) {
|
|
axios.post('/ajax/ajax_vue_wazzap.php', {
|
|
request: 'get_counter_host',
|
|
agency_id: agencyId,
|
|
})
|
|
.then((response) => {
|
|
var host = response.data.host;
|
|
var apiKey = response.data.key;
|
|
var userId = $('#session_user_id').val();
|
|
if (host && apiKey) {
|
|
// Подключаемся при помощи socket.io
|
|
const client = io(`https://${host}`, connectOptions);
|
|
// Слушаем событие 'connect'
|
|
client.on('connect', () => {
|
|
// Завершаем подключение: транслируем событие 'counterConnecting', в котором передаем данные клиента
|
|
client.emit('counterConnecting', {
|
|
type: 'api_v3',
|
|
apiKey,
|
|
userId
|
|
});
|
|
});
|
|
// Подтверждение подключения
|
|
client.on('counterConnected', () => console.log('Connected to Wazzup notifications!'));
|
|
// Обновление счетчика неотвеченных
|
|
client.on('counterUpdate', (data) => {
|
|
// используйте counter для работы через веб-сокеты
|
|
// или counterV2 + type для работы по новому механизму подсчета неотвеченных
|
|
// type может быть 'red' или 'grey', в случае если counterV2>0 или null, если counterV2 = 0
|
|
const { counter, counterV2, type } = data;
|
|
if (counter > 0) {
|
|
document.getElementById('wazzapCounterHeader').innerHTML = counter;
|
|
$('#wazzapCounterHeader').show();
|
|
} else {
|
|
document.getElementById('wazzapCounterHeader').innerHTML = counter;
|
|
$('#wazzapCounterHeader').hide();
|
|
}
|
|
});
|
|
}
|
|
})
|
|
.catch(function (error) {
|
|
console.log(error);
|
|
});
|
|
}
|
|
}); |