26 lines
873 B
Python
26 lines
873 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):
|
|
html_payload = event['html']
|
|
|
|
# Enviar actualización por WebSocket al cliente (HTMX espera HTML puro, no JSON)
|
|
await self.send(text_data=html_payload)
|