better wrapper for websocket

This commit is contained in:
Henry Jameson 2019-12-08 19:18:38 +02:00
parent 1b1620a755
commit 505fb26061
3 changed files with 69 additions and 35 deletions

View file

@ -1,4 +1,4 @@
import apiService, { getMastodonSocketURI, handleMastoWS } from '../api/api.service.js'
import apiService, { getMastodonSocketURI, ProcessedWS } from '../api/api.service.js'
import timelineFetcherService from '../timeline_fetcher/timeline_fetcher.service.js'
import notificationsFetcher from '../notifications_fetcher/notifications_fetcher.service.js'
import followRequestFetcher from '../../services/follow_request_fetcher/follow_request_fetcher.service'
@ -20,19 +20,10 @@ const backendInteractorService = credentials => ({
return followRequestFetcher.startFetching({ store, credentials })
},
startUserSocket ({ store, onMessage }) {
startUserSocket ({ store }) {
const serv = store.rootState.instance.server.replace('http', 'ws')
const url = serv + getMastodonSocketURI({ credentials, stream: 'user' })
const socket = new WebSocket(url)
console.debug('Socket created:', socket)
if (socket) {
socket.addEventListener('open', (wsEvent) => console.debug('MastoAPI User WebSocket connection established'))
socket.addEventListener('message', (wsEvent) => onMessage(handleMastoWS(wsEvent)))
socket.addEventListener('error', (error) => console.error('MastoApi User WebSocket Error:', error))
return socket
} else {
throw new Error('failed to connect to socket')
}
return ProcessedWS({ url, id: 'User' })
},
...Object.entries(apiService).reduce((acc, [key, func]) => {