Я использую каналы == 1.1.7 и asgi-redis == 1.4.3. Я хочу получить пользователя текущего сеанса с помощью этой команды:
user = get_redis_instance().get(id)
с функцией get_redis_instance, определенной следующим образом:
def get_redis_instance():
from myproject.asgi import channel_layer
return channel_layer._connection_list[0]
но не возвращает ни одного !!
код выше внутри потребителя:
class MyprojectWebsocket(WebsocketConsumer, WebsocketAuth):
http_user = True
channel_session = True
channel_session_user = True
def authenticate(self):
if user.is_authenticated
if get_redis_instance().get(id) != None:
return True
else:
return False
def connect(self, message, id):
self.message.reply_channel.send({"accept": True})
user = get_redis_instance().get(id)
print("user: {}".format(user))
if not self.authenticate(id):
self.message.reply_channel.send({"text": json.dumps(
{'status': False, 'message': 'You must login to the system!'})}, immediately=True)
self.message.reply_channel.send({"accept": False})
с идентификатором - идентификатор текущего пользователя