TF-3157 Remove unnecessary background service worker

This commit is contained in:
DatDang
2024-11-04 16:28:13 +07:00
committed by Dat H. Pham
parent 7d59982cc9
commit b76e8bb725
20 changed files with 151 additions and 447 deletions
-20
View File
@@ -1,20 +0,0 @@
importScripts("https://www.gstatic.com/firebasejs/9.10.0/firebase-app-compat.js");
importScripts("https://www.gstatic.com/firebasejs/9.10.0/firebase-messaging-compat.js");
// Initialize the Firebase app in the service worker by passing in the messagingSenderId.
firebase.initializeApp({
apiKey: "...",
authDomain: "...",
databaseURL: "...",
projectId: "...",
storageBucket: "...",
messagingSenderId: "...",
appId: "...",
});
// Retrieve an instance of Firebase Messaging so that it can handle background messages.
const messaging = firebase.messaging();
const broadcast = new BroadcastChannel('background-message');
messaging.onBackgroundMessage((message) => {
broadcast.postMessage(message);
});
-74
View File
@@ -1,74 +0,0 @@
importScripts('flutter_service_worker.js?v={{flutter_service_worker_version}}');
var webSocket;
const broadcast = new BroadcastChannel("background-message");
var intervalId;
const pingIntervalInMs = 10000;
function connect(url, ticket) {
webSocket = new WebSocket(`${url}?ticket=${ticket}`, "jmap");
webSocket.onopen = () => {
console.log("websocket open");
webSocket.send(
JSON.stringify({
"@type": "WebSocketPushEnable",
dataTypes: ["Mailbox", "Email"],
})
);
intervalId = setInterval(() => {
webSocket.send(
JSON.stringify({
"@type": "Request",
id: "R1",
using: ["urn:ietf:params:jmap:core"],
methodCalls: [["Core/echo", {}, "c0"]],
})
);
}, pingIntervalInMs);
};
webSocket.onmessage = (event) => {
console.log(`websocket received message: ${event.data}`);
broadcast.postMessage(event.data);
};
webSocket.onclose = (event) => {
console.log(
`websocket connection closed with code: "${event.code}" reason: "${event.reason}" and cleanly: "${event.wasClean}"`
);
broadcast.postMessage("webSocketClosed");
webSocket = null;
clearInterval(intervalId);
};
}
function disconnect() {
if (webSocket == null) {
return;
}
webSocket.close();
}
self.addEventListener("install", (event) => {
self.skipWaiting().then(() => {
console.log("Service worker installed");
});
});
self.addEventListener("activate", (event) => {
event.waitUntil(
self.clients.claim().then(() => {
console.log("Service worker activated");
})
);
});
self.addEventListener("message", (event) => {
console.log(`web socket worker received message: ${event.data}`);
if (event.data.action === "connect") {
connect(event.data.url, event.data.ticket);
} else if (event.data.action === "disconnect") {
disconnect();
}
});
+1 -1
View File
@@ -23,7 +23,7 @@ function fetchServiceWorker() {
// Wait for registration to finish before dropping the <script>tag.
// Otherwise, the browser will load the script multiple times,
// potentially different versions.
navigator.serviceWorker.register('web-sockets-worker.js')
navigator.serviceWorker.register('flutter_service_worker.js?v={{flutter_service_worker_version}}')
.then((reg) => {
function waitForActivation(serviceWorker) {
serviceWorker.addEventListener('statechange', () => {