Django Channels を使用して、ユーザー関連の websocket サービスを構築しようとしています。routing.py の最初の行にこのデマルチプレクサがあります。
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),`
そして、入力に message.user がありません。
channel_session_user_from_http を再度呼び出す必要がありますか? Demultiplexer にユーザーを追加する信頼できる方法はありますか?