Создает ли Django каналов нового потребителя при каждом использовании? - PullRequest
0 голосов
/ 02 августа 2020

У меня есть потребитель

class BingoConsumer(WebsocketConsumer):
    logged_in = 0

    def connect(self):
        async_to_sync(self.channel_layer.group_add)(
            "login", self.channel_name
        )
        self.accept()

    def disconnect(self, close_code):
        async_to_sync(self.channel_layer.group_discard)(
            "login", self.channel_name
        )
        self.logged_in -= 1
    def receive(self, text_data):
        text_data = json.loads(text_data)
        if text_data['type'] == 'login':
            self.logged_in += 1
            async_to_sync(self.channel_layer.group_send)(
                "login", {
                    'type': 'login',
                    'count': self.logged_in,
                }
            )

    def login(self, event):
        self.send(text_data=json.dumps({
            'type': 'login',
            'total': event['count'],
        }))

, который вызывается каждый раз, когда пользователь входит на мой веб-сайт, он автоматически вызывает веб-сокет с типом «логин». Я хочу отслеживать количество пользователей, которые в настоящее время вошли в систему, но в настоящее время независимо от того, сколько людей вошли в систему, остается 1. Что заставляет меня задаться вопросом, считает ли Django потребителя одноклассником? Создает ли он их и при необходимости уничтожает?

1 Ответ

1 голос
/ 02 августа 2020

переменных не используются в разных сеансах. Если вы хотите рассчитать переменные в нескольких сеансах, вам, вероятно, потребуется использовать базу данных или локальный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...