Skip to content

Commit

Permalink
Merge pull request #40 from frontend-park-mail-ru/ws-fix
Browse files Browse the repository at this point in the history
ws и sw fix
  • Loading branch information
oFem1m authored May 31, 2024
2 parents 0495ec1 + 5a42cf8 commit df30e93
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 32 deletions.
11 changes: 6 additions & 5 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,16 @@ function registerServiceWorker() {
navigator.serviceWorker
.getRegistrations()
.then(function (registrations) {
if (registrations.length === 0) {
if (registrations.length < 2) {
return navigator.serviceWorker.register(
new URL('./serviceWorker.js', import.meta.url),
);
} else {
const serviceWorker = registrations[0];
if (!serviceWorker.active) {
return serviceWorker.activate();
}
registrations.forEach((sw) => {
if (!sw.active) {
return sw.activate();
}
});
}
})
.catch(function (err) {
Expand Down
16 changes: 1 addition & 15 deletions src/serviceWorker.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,18 +30,4 @@ self.addEventListener('fetch', (event) => {
);
});

self.addEventListener('activate', (event) => {
const cacheWhitelist = [CACHE_NAME];

event.waitUntil(
caches.keys().then((cacheNames) => {
return Promise.all(
cacheNames.map((cacheName) => {
if (cacheWhitelist.indexOf(cacheName) === -1) {
return caches.delete(cacheName);
}
}),
);
}),
);
});
self.addEventListener('activate', () => {});
35 changes: 23 additions & 12 deletions src/utils/WebSocket.js
Original file line number Diff line number Diff line change
@@ -1,37 +1,47 @@
import { baseUrl } from './API/config.js';

export class WebSocketManager {
constructor(responsehandler) {
constructor(responseHandler) {
this.responseHandler = responseHandler;
this.createWebSocket();
}

createWebSocket() {
if (baseUrl === 'chatme.site/api/v1') {
this.socket = new WebSocket(`wss://${baseUrl}/ws/sendMessage`);
} else {
this.socket = new WebSocket(`ws://${baseUrl}/sendMessage`);
}
this.responseHandler = responsehandler;
this.connect();
}

connect() {
this.socket.onopen;
this.socket.onopen = () => {
console.log('WebSocket connection opened.');
};

this.socket.onerror = (error) => {
console.error('WebSocket error:', error);
};

// Добавляем прослушивание входящих сообщений
this.socket.onmessage = (event) => {
const data = JSON.parse(event.data);
if (this.responseHandler) {
this.responseHandler(data);
}
};
this.socket.onclose = function (event) {

this.socket.onclose = (event) => {
if (!event.wasClean) {
if (baseUrl === 'chatme.site/api/v1') {
this.socket = new WebSocket(
`wss://${baseUrl}/ws/sendMessage`,
);
} else {
this.socket = new WebSocket(`ws://${baseUrl}/sendMessage`);
}
console.warn(
'WebSocket connection closed unexpectedly, reconnecting...',
);
setTimeout(() => {
this.createWebSocket();
}, 3000);
} else {
console.log('WebSocket connection closed cleanly.');
}
};
}
Expand All @@ -40,9 +50,10 @@ export class WebSocketManager {
if (this.socket.readyState === WebSocket.OPEN) {
this.socket.send(JSON.stringify(data));
} else {
console.error('WebSocket error.');
console.error('WebSocket is not open.');
}
}

close() {
if (this.socket) {
this.socket.close();
Expand Down

0 comments on commit df30e93

Please sign in to comment.