Я пытаюсь создать связанный с пользователем сервис websocket с каналами Django. У меня есть эта демультиплексора на первой линии моей routing.py:Как получить пользователя django после каналов. Демультиплексор?
def checkauth(f):
def wrapper(*args, **kwargs):
if args[0].message.user.is_anonymous():
args[0].send(stream="auth", payload = {'m':'pissoff'})
args[0].close()
return
return f(*args, **kwargs)
return wrapper
class Demultiplexer(WebsocketDemultiplexer):
http_user = True
mapping = {"auth": "user.tracking",}
@checkauth
def connect(self, message, **kwargs):
@checkauth
def receive(self, content, **kwargs):
Итак, теперь я пишу потребителей в routing.py:
route('user.tracking', another_app.myconsumer),
или
route_class(another_app.MyConsumer),`
и они hasn 't message.user на входе.
Нужно ли мне снова позвонить channel_session_user_from_http? Есть ли надежный способ добавления пользователя в Demultiplexer?