diff --git a/front/src/App.vue b/front/src/App.vue index d60f82febeba44af44c6ab236f784da982fff2f6..b26959fe7006a72c45cac37e72d468c8f3c614ff 100644 --- a/front/src/App.vue +++ b/front/src/App.vue @@ -33,6 +33,9 @@ </template> <script> +import { WebSocketBridge } from 'django-channels' + +import logger from '@/logging' import Sidebar from '@/components/Sidebar' import Raven from '@/components/Raven' @@ -44,10 +47,31 @@ export default { }, created () { this.$store.dispatch('instance/fetchSettings') + this.openWebsocket() + let self = this setInterval(() => { // used to redraw ago dates every minute self.$store.commit('ui/computeLastDate') }, 1000 * 60) + }, + methods: { + openWebsocket () { + let self = this + let token = this.$store.state.auth.token + // let token = 'test' + const bridge = new WebSocketBridge() + bridge.connect( + `/api/v1/instance/activity?token=${token}`, + null, + {reconnectInterval: 5000}) + bridge.listen(function (event) { + logger.default.info('Received timeline update', event) + self.$store.commit('instance/event', event) + }) + bridge.socket.addEventListener('open', function () { + console.log('Connected to WebSocket') + }) + } } } </script>