Каналы Django - Группа
Если в группе два канала, то после group_send событие chat.message обрабатывается chat_message... и это происходит для обоих каналов, потому что я печатаю названия каналов и получаю два разных названия... но UI обновляется только для одного потребителя, да и то дважды, в то время как другой потребитель не показывает никаких изменений.
В моем коде на стороне клиента есть функция onmessage, которая отвечает за обновление UI. В идеальном случае, если у меня есть два канала в одной группе, то сообщение должно быть передано обоим, и таким образом UI обоих потребителей должен быть обновлен.
class MyWebsocketConsumer(WebsocketConsumer):
def connect(self):
print("Connected...",self.channel_name)
self.group_name = self.scope['url_route']['kwargs']['group_name']
# print('Group Name...',self.group_name)
async_to_sync(self.channel_layer.group_add)(self.group_name, self.channel_name)
self.accept()
def receive(self, text_data=None, bytes_data=None):
async_to_sync(self.channel_layer.group_send)(self.group_name,{
"type": "chat.message",
"msg": text_data,
},)
def chat_message(self,event):
self.send(text_data = event['msg'])
print(self.channel_name)
def disconnect(self, close_code):
async_to_sync(self.channel_layer.group_discard)(self.group_name, self.channel_name)
ws.onmessage = function(event){
console.log('Message recived from server...', event)
document.getElementById('chat-log').value += (event.data + '\n')
}