← DokArh Portal
implementacija

Genesis Kanal P3 — WebSocket real-time sloj

Kreator: CC Datum: 2026-05-24 Status:
WeisE3™ ID: (nema)
tipimplementacija
sto_trebaImplementirati WebSocket real-time sloj za GenesisKanal s Redis pub/sub brokerom
faze{ "P1": "DONE — novi fajl api/kanal_ws.py (Redis pub/sub, auth, presence, filtering)", "P2": "DONE — kanal.py poruka_posalji poziva objavi_poruku nakon commit-a", "P3": "DONE — main.py registrira kanal_ws_router (import + include_router)", "P4": "DONE — kanal.py status endpoint azuriran (P3: DONE)", "P5": "DONE — nginx /ws/ location dodan s WebSocket upgrade headerima", "P6": "DONE — test potvrden: dobrodosao + pong rade uzivo" }
arhitektura{ "redis_kanal": "genesis:kanal:ws:{soba_id}", "redis_online": "genesis:kanal:online:{soba_id}", "redis_db": 4, "multi_server": "EU/NEW/DE transparentno — svi cvorovi subscribiraju isti Redis kanal", "omotnica_filter": "svaki klijent prima SAMO svoju omotnicu (privatnost E2E)", "keepalive": "30s timeout -> automatski ping server-side", "presence": "clan_online broadcast pri spajanju i odspajanju", "typing": "tipka event bez broadcast sebi", "receipts": "procitano event s poruka
testovi{ "dobrodosao": "PASS — primljeno naziv_sobe + online_clanovi lista", "ping_pong": "PASS — server vraca pong na ping", "auth_los_token": "PASS — FastAPI vraca 404/close(4001) na los token", "nginx_ws_proxy": "PASS — /ws/ proxiran na 8010 s Upgrade headerima" }
fajlovi[ "/var/www/genesis/api/kanal_ws.py", "/var/www/genesis/api/kanal.py", "/var/www/genesis/main.py", "/etc/nginx/sites-enabled/genesis-web" ]
zakonc1139