Можем ли мы перебирать слои канала django?
Я использую django channels. Я столкнулся с проблемой. Я пытаюсь перебрать различные имена комнат для отправки сообщений, но получаю ошибку типа. Я не знаю, возможно ли это с django-channels или это нормально использовать цикл для отправки сообщений в сокетах
мой код. consummers.ProjectConsumer
Получение сообщения от WebSocket
async def receive(self, text_data):
text_data_json = json.loads(text_data)
sender = text_data_json['sender']
receiver = text_data_json['receiver']
message = text_data_json['message']
# Send message to room group
username = ["admin","main"]
for user in username:
object = {
'sender':sender,
'receiver': user,
'message':message,
}
username = user
self.room_name = username
print("here", self.room_name)
self.channel_layer.group_send(
self.room_name,
{
'type': 'sent', #function name as an event type
'object': object #function parameters as an event object
}
)
async def sent(self, event):
sender = event['object']["sender"]
receiver = event['object']["receiver"]
message = event['object']["message"]
# Send message to WebSocket
await self.send(text_data=json.dumps({
'sender':sender,
'receiver':receiver,
'message':message,
}))
ошибка:
File "/home/aa/gitCodes/clone-beru/4-multiuser_handler/backend/notifications/sockets/consumers.py", line 117, in receive
await self.channel_layer.group_send(...
TypeError: can not serialize 'type' object