import json from channels.generic.websocket import AsyncWebsocketConsumer class ExpenseConsumer(AsyncWebsocketConsumer): async def connect(self): # Todos los clientes se conectan a este grupo para escuchar actualizaciones de gastos self.group_name = 'expenses_updates' await self.channel_layer.group_add( self.group_name, self.channel_name ) await self.accept() async def disconnect(self, close_code): await self.channel_layer.group_discard( self.group_name, self.channel_name ) # Recibir actualización desde el Channel Layer async def expense_update(self, event): expense_data = event['expense'] action = event['action'] # Enviar actualización por WebSocket al cliente await self.send(text_data=json.dumps({ 'action': action, 'expense': expense_data }))