Каналы Django отправляют сообщения из представлений
У меня есть этот потребитель
class ChatConsumer(AsyncWebsocketConsumer):
async def connect(self):
self.userID = self.scope['user'].id
self.partnerID = self.scope['url_route']['kwargs']['partner']
self.room_group_name = str('chat_{0}_with_{1}'.format(self.userID, self.partnerID))
await self.channel_layer.group_add(
self.room_group_name,
self.channel_name
)
await self.accept()
async def disconnect(self, close_code):
# Leave room
await self.channel_layer.group_discard(
self.room_group_name,
self.channel_name
)
async def receive(self, text_data):
data = json.loads(text_data)
data['type'] = "chat_message"
# Send message to room group
await self.channel_layer.group_send(self.room_group_name,data)
# Receive message from room group
async def chat_message(self, event):
print("event is", event)
await self.send(text_data=json.dumps(event))
и это прекрасно работает на стороне клиента, использование может отправлять и получать сообщения нормально но я не могу отправить сообщение из представления. вот мой код представления
from channels.layers import get_channel_layer
from asgiref.sync import async_to_sync
channel_layer = get_channel_layer()
async_to_sync(channel_layer.group_send('chat_{0}_with_{1}'.format(request.user.id, partner.id), message ))
нет никаких ошибок ничего не появляется на консоли и я понятия не имею почему
Я даже удалил переменные и написал первый параметр вручную после печати имени группы в потребителе при подключении, затем скопировал его вместо 'chat_{0}_with_{1}'