Django канал не получает сообщение - PullRequest
1 голос
/ 07 мая 2020

Я использую канал django в моем текущем проекте. Из одного из своих приложений django я отправляю уведомление на уровень канала, чтобы веб-сокет мог транслировать сообщение. Но проблема в том, что потребитель не получает мое сообщение.

Использует приложение django для отправки уведомления на канал:

from asgiref.sync import AsyncToSync
from channels.layers import get_channel_layer
import json


def async_send(group_name, text):
    channel_layer = get_channel_layer()
    AsyncToSync(channel_layer.group_send)(
        group_name,
        {
            'type': 'notify',
            'text': json.dumps(text)
        }
    )

Мой потребительский файл:

from channels.generic.websocket import AsyncWebsocketConsumer


class InformationConsumer(AsyncWebsocketConsumer):
    async def connect(self):
        self.channel_layer.group_add(str(self.scope['user']), self.channel_name)
        await self.accept()

    async def notify(self, event):
        await self.send(
            {
                "message": event['text'],
            },
        )
        print(event['text'])

Я должен получить вывод события ['text'], но ничего не получает: (

1 Ответ

2 голосов
/ 07 мая 2020

изменить с

self.channel_layer.group_add(str(self.scope['user']), self.channel_name)

на

await self.channel_layer.group_add(str(self.scope['user']), self.channel_name)

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