I found my solution to this problem. The trick is to add session_key from the django request object to the django-socketio message before sending it to the server; then back to the server side, you can allow session_key to return to the User object. Here is the code:
Template file: (served by django server)
<input type="hidden" id="session_key" value="{{ request.session.session_key }}"> ... <script type="text/javascript" charset="utf-8"> function someHandler(action, post_id, some_val){ var data = { 'action': action, 'post_id': post_id, 'value': some_val, 'session_key': $("#session_key").val() }; socket.send(data); } </script>
events.py: (processed by django-socketio server)
from django.contrib.sessions.models import Session from django.contrib.auth.models import User def message(request, socket, context, message): session = Session.objects.get(session_key=message['session_key']) uid = session.get_decoded().get('_auth_user_id') user = User.objects.get(pk=uid)
Profit!
source share