emile 10 months ago
parent 50efce0062
commit 199946bee8

@ -5,19 +5,28 @@ from django.template.loader import render_to_string
from asgiref.sync import async_to_sync from asgiref.sync import async_to_sync
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
import requests import requests
from django.contrib.sessions.models import Session
class OsitcomVisitor(WebsocketConsumer): class OsitcomVisitor(WebsocketConsumer):
def connect(self): def connect(self):
cookie_header = self.scope.get('headers', {}) cookie_header = dict(self.scope.get('headers', {})).get(b'cookie', b'').decode('utf-8')
http_cookie = dict(cookie_header).get(b'cookie', b'').decode('utf-8')
for cookie in http_cookie.split('; '): self.session_id = None
key, value = cookie.split('=') if cookie_header:
if key == 'sessionid': for cookie in cookie_header.split('; '):
self.session_id = value key, value = cookie.split('=', 1)
break if key == 'sessionid':
else: self.session_id = value
self.session_id = 11 break
if not self.session_id:
self.session_id = self.scope.get('session', {}).get('_session_key')
if not self.session_id:
# Handle missing session_id scenario, maybe reject the connection
self.close()
return
async_to_sync(self.channel_layer.group_add)( async_to_sync(self.channel_layer.group_add)(
'ositcom_visitors', self.channel_name 'ositcom_visitors', self.channel_name
) )

Loading…
Cancel
Save