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
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);
|
|
});
|