feat(sse): sync temps réel multi-appareils via Server-Sent Events v0.5.8
- Broadcaster asyncio.Queue avec keepalive 25s (prévient timeout proxy) - Endpoint GET /api/events/stream (StreamingResponse text/event-stream) - Broadcast notes_changed / todos_changed / shopping_changed sur toutes mutations - Hook useServerEvents: EventSource avec reconnexion automatique (3s) - Pages Notes, Todos, Shopping abonnées aux événements SSE - nginx: location SSE dédiée (proxy_buffering off, timeout 24h) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { useState, useEffect, useCallback, useRef } from 'react'
|
||||
import { useServerEvents } from '../hooks/useServerEvents'
|
||||
import type { Note, NoteFilters } from '../api/notes'
|
||||
import { fetchNotes, createNote, updateNote, deleteNote, addAttachment, deleteAttachment } from '../api/notes'
|
||||
import Modal from '../components/Modal'
|
||||
@@ -354,6 +355,7 @@ export default function NotesPage() {
|
||||
}, [filters])
|
||||
|
||||
useEffect(() => { void load() }, [load])
|
||||
useServerEvents({ notes_changed: () => void load() })
|
||||
|
||||
function handleSearchChange(val: string) {
|
||||
setSearchInput(val)
|
||||
|
||||
Reference in New Issue
Block a user