30 lines
953 B
Python
30 lines
953 B
Python
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
|
|
}))
|