You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.5 KiB
JavaScript

const visitors_ws_scheme = window.location.protocol === "https:" ? "wss" : "ws";
const my_domain = "192.168.1.106:8000";
const session_id = document.getElementById('session_id').textContent.trim();
const current_url = document.getElementById('current_url').textContent.trim();
const referrer = document.referrer;
const visitorsSocketUrl = `${visitors_ws_scheme}://${my_domain}/ws/osichat/visitors/`;
const visitorsSocket = new WebSocket(visitorsSocketUrl);
const clientIpUrl = `http://${my_domain}/get-client-ip/`;
fetch(clientIpUrl)
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data => {
const client_ip = data.ip;
visitorsSocket.onopen = () => {
console.log('WebSocket connection to visitors established');
const event_message = {
'event_type': 'new_visitor',
'session_id': session_id,
'referrer': referrer,
'url': current_url,
'client_ip': client_ip,
};
visitorsSocket.send(JSON.stringify(event_message));
};
visitorsSocket.onclose = () => {
console.log('WebSocket connection to visitors closed');
};
visitorsSocket.onerror = (error) => {
console.error('WebSocket error:', error);
};
})
.catch(error => {
console.error('Error fetching client IP:', error);
});