Отправка и прием сокетов без открытия веб-страницы 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 страницы открытыми в браузере. Но если я не держу страницу "Путешествие" открытой в браузере, сокет не принимается и отправка не происходит из "Путешествия".
Это должно работать без необходимости открывать страницу "путешествия" в браузере. Как я могу это сделать?