const visitors_ws_scheme = window.location.protocol === "https:" ? "wss" : "ws"; const my_domain = "192.168.1.106:8000"; async function fetchClientData() { try { const response = await fetch('http://192.168.1.106:8000/get-client-ip/'); const data = await response.json(); return { client_ip: data.ip, client_country: data.country }; } catch (error) { console.error('Error fetching client data:', error); return { client_ip: 'Unknown', client_country: 'Unknown' }; } } async function fetchVisitorsSession() { try { const response = await fetch('http://192.168.1.106:3000/get-client-session/'); const data = await response.json(); return data.session_id; } catch (error) { console.error('Error fetching session ID:', error); return 'Unknown'; } } async function initializeVisitorsWebSocket() { const referrer = document.referrer; const clientData = await fetchClientData(); const session_id = await fetchVisitorsSession(); const visitorsSocketUrl = `${visitors_ws_scheme}://${my_domain}/ws/osichat/visitors/`; const visitorsSocket = new WebSocket(visitorsSocketUrl); visitorsSocket.onopen = () => { console.log('WebSocket connection to visitors established'); const event_message = { 'event_type': 'new_visitor', 'referrer': referrer, 'url': window.location.href, 'client_ip': clientData.client_ip, 'client_country': clientData.client_country, 'session_id': session_id }; visitorsSocket.send(JSON.stringify(event_message)); }; visitorsSocket.onclose = () => { console.log('WebSocket connection to visitors closed'); }; visitorsSocket.onerror = (error) => { console.error('WebSocket error:', error); }; } initializeVisitorsWebSocket();