Quiz

Форк
0
/
consumers.py 
39 строк · 1.1 Кб
1
import json
2
from channels.generic.websocket import AsyncWebsocketConsumer
3

4

5
class GamesConsumer(AsyncWebsocketConsumer):
6

7
    async def connect(self):
8
        options = ['user', 'queue', 'game']
9
        for option in options:
10
            try:
11
                name = f"{option}_{self.scope['url_route']['kwargs'][f'{option}_id']}"
12
            except:
13
                pass
14

15
        self.group_name = name
16

17
        await self.channel_layer.group_add(self.group_name, self.channel_name)
18

19
        await self.accept()
20

21
    async def disconnect(self, code):
22

23
        await self.channel_layer.group_discard(self.group_name, self.channel_name)
24

25
    async def receive(self, text_data):
26
        text_data_json = json.loads(text_data)
27
        message = text_data_json['message']
28

29
        event = {
30
            'type': 'send_message',
31
            'message': message
32
        }
33

34
        await self.channel_layer.group_send(self.group_name, event)
35

36
    async def send_message(self, event):
37
        message = event['message']
38

39
        await self.send(text_data=json.dumps({'message': message}))
40

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.