diff --git a/draw/consumers.py b/draw/consumers.py index a3f091a..8ac2172 100644 --- a/draw/consumers.py +++ b/draw/consumers.py @@ -47,6 +47,10 @@ class DrawConsumer(AsyncJsonWebsocketConsumer): # Fetch the registration of the current user user = self.scope['user'] + if user.is_anonymous: + # User is not authenticated + await self.close() + return reg = await Registration.objects.aget(user_id=user.id) self.registration = reg diff --git a/draw/static/draw.js b/draw/static/draw.js index f45468c..b646202 100644 --- a/draw/static/draw.js +++ b/draw/static/draw.js @@ -736,7 +736,7 @@ document.addEventListener('DOMContentLoaded', () => { } } - function setupSocket() { + function setupSocket(nextDelay = 1000) { // Open a global websocket socket = new WebSocket( (document.location.protocol === 'https:' ? 'wss' : 'ws') + '://' + window.location.host + '/ws/draw/' @@ -753,7 +753,7 @@ document.addEventListener('DOMContentLoaded', () => { // Manage errors socket.addEventListener('close', e => { console.error('Chat socket closed unexpectedly, restarting…') - setupSocket() + setTimeout(() => setupSocket(2 * nextDelay), nextDelay) }) // When the socket is opened, set the language in order to receive alerts in the good language