diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/modules/api.js | 11 | ||||
| -rw-r--r-- | src/services/api/api.service.js | 1 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/modules/api.js b/src/modules/api.js index 01c65e49..2be0f236 100644 --- a/src/modules/api.js +++ b/src/modules/api.js @@ -40,7 +40,16 @@ const api = { // Global MastoAPI socket control, in future should disable ALL sockets/(re)start relevant sockets enableMastoSockets (store) { const { state, dispatch } = store - if (state.mastoUserSocket) return + // Do not initialize unless nonexistent or closed + if ( + state.mastoUserSocket && + ![ + WebSocket.CLOSED, + WebSocket.CLOSING + ].includes(state.mastoUserSocket.getState()) + ) { + return + } return dispatch('startMastoUserSocket') }, disableMastoSockets (store) { diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js index f4483149..d3d5c68d 100644 --- a/src/services/api/api.service.js +++ b/src/services/api/api.service.js @@ -1152,6 +1152,7 @@ export const ProcessedWS = ({ // 1000 = Normal Closure eventTarget.close = () => { socket.close(1000, 'Shutting down socket') } + eventTarget.getState = () => socket.readyState return eventTarget } |
