Отправка и прием сокетов без открытия веб-страницы html

У меня есть проект django, в котором есть chat.html, journey.html и manager.html.

chat.html

const socket = new WebSocket('ws://' + window.location.host + '/ws/chat/room1/');
...
async function trigger_journey() {
    var selectedJourney = document.getElementById("journey_dropdown").value;
    const response = await fetch(`/fetch_journey/?journey_name=${selectedJourney}`);
    const data = await response.json();
    console.log("data:", data)
    const elementId = 'messageDisplay';
    const chatContainer = document.getElementById(elementId);
    socket.send(JSON.stringify({ type: 'trigger_journey', sender: 'Agent', journeyid: data.journeyid, journeyorder: data.journeyorder, requestId: requestId, email: email, name: uname, phone: phone, chat: chatContainer.innerHTML, department: Department }));
}

journey.html

socket.onmessage = function (event) {
    const message = JSON.parse(event.data);
           
    if (message.type === 'trigger_journey') {
        requestid = message.requestid;
        journeyid = message.journeyid;
        journeyorder = message.journeyorder;
        chat = message.chat;
        department = message.department;
        ...
                     
                if (activityid === 'emailevent') {    
                    sendEmail();
                }              
                else if (activityid === 'approvalevent') {
                    sendApproval()   
                }
            });
    }
}
            
async function sendApproval() {
    ...
    if (sendToForExistingJourneyId === "Manager") {
        data = {
            'type': 'manager_approval',
            'sendTo': sendTo,
            'requestId': requestid,
            'name': uname,
            'phoneNumber': phoneNumber,
            'requestDetails': ureqdetails,
            'sender': "agent"
        };
        //"sent to manager");
    }
    socket.send(JSON.stringify(data));

manager_dashboard.html

socket.onmessage = function(event) {
    //"--------------manager_approval--------------")
    var data = JSON.parse(event.data);
    //data)
    if (data.type === 'manager_approval' ) {
        handleWebSocketMessage(data);
    }
   
};

Один из потоков заключается в том, что я отправляю сокет для запуска путешествия из chat.html. А в journey.html у меня есть поток для утверждения, где сокет отправляется в manager.html.

Этот поток работает только тогда, когда я держу все эти 3 страницы открытыми в браузере. Но если я не держу страницу "Путешествие" открытой в браузере, сокет не принимается и отправка не происходит из "Путешествия".

Это должно работать без необходимости открывать страницу "путешествия" в браузере. Как я могу это сделать?

Вернуться на верх