I know you can create WebSocket connections from within a Service Worker itself; my question is more whether or not you can use a WebSocket from your app as normal and have
I think one should use fetch
for the first load of the page, so its data can be cached and returned by the service worker when you're offline.
So you initiate the websocket connection only if you're online. No need to cache data then.
And you fallback in saving message in cache in the app side when it fails to send via socket.