mDNS discovery
Cílem je, aby se člen kapely připojil bez zadávání čehokoli. Aplikace proto zkouší najít leadera několika cestami zároveň.
Jak objevování funguje
Když leader spustí relaci, děje se toto:
- Zjistí si vlastní IP adresu v lokální síti.
- Nastartuje HTTP server.
- Ohlásí se přes mDNS/Bonjour jako služba
_eutepio._tcp.
Zařízení, které hledá relaci, běží ve dvou režimech současně:
- mDNS dotaz — rychlá cesta, funguje během vteřin
- Sken lokálního rozsahu — záložní cesta pro sítě bez multicastu
1 až 254 ve tvém podsíťovém rozsahu a opakuje se každé 2 sekundy. Adresy, kde byl leader viděn naposledy, se zkoušejí přednostně (až osm posledních), takže opětovné připojení k téže kapele bývá okamžité.Obě cesty běží paralelně, ne za sebou. Když ti multicast v síti nefunguje, relace se stejně najde — jen o kousek pomaleji.
Service record a porty
Typ služby: _eutepio._tcp
Protokol: TCP
Port: 8765
Fallback: 8766, 8767, 8768, 8769
HTTP endpointy
Leaderův server vystavuje čtyři endpointy:
| Endpoint | Metoda | K čemu |
|---|---|---|
/discover | GET | Vrátí informace o relaci — název, počet členů, zda je chráněná heslem |
/join | POST | Připojení člena, ověření hesla, přidělení identity |
/ws | GET | Upgrade na WebSocket, přes který jede veškerý provoz relace |
/health | GET | Rychlá kontrola, že leader ještě žije |
Další způsoby připojení
QR kód
Leader zobrazí QR kód s odkazem ve tvaru:
eutepio://join?ip=192.168.0.42&port=8765&pin=1234&session=…&leader=…
Člen ho naskenuje vestavěnou čtečkou a připojí se přímo — bez čekání na objevování. Hodí se na místech, kde je síť přeplněná nebo multicast blokovaný.
Ruční IP adresa
V seznamu relací je volba pro ruční zadání adresy. Leader svoji IP zobrazuje na obrazovce synchronizace.
Heslo relace
/join; bez správného hesla se člen k WebSocketu nedostane. PIN je součástí QR kódu, takže při skenování ho nikdo nezadává ručně.Požadavky na síť
| Podmínka | Proč |
|---|---|
| Stejná lokální síť / podsíť | Sken i mDNS pracují jen uvnitř tvého segmentu sítě |
| Povolený multicast | Nutný pro rychlou cestu přes mDNS |
| Vypnutá izolace klientů | Mnoho hotelových a klubových WiFi zakazuje komunikaci mezi zařízeními |
| Vypnutá VPN | VPN přesměruje provoz mimo lokální síť |
Oprávnění na iOS
_eutepio._tcp i text výzvy; dialog se objeví při prvním pokusu o objevování.Oprávnění na Androidu
Řešení problémů
Relace se na druhém zařízení neobjeví
- Ověř, že jsou obě zařízení na stejné síti — ne jedno na WiFi a druhé na mobilních datech.
- Zkontroluj, jestli síť nemá zapnutou izolaci klientů (typicky veřejné a hotelové WiFi).
- Vypni VPN na obou zařízeních.
- Zkus QR kód nebo ruční IP — obejdou objevování úplně.
- Pokud nic nepomáhá, udělej z jednoho telefonu hotspot a připoj se na něj.
Na iOS se neobjevil dialog o lokální síti
Spojení se během hraní ztrácí
Leader nabíhá na jiném portu
To je normální chování při obsazeném portu 8765. Objevování i sken s tím počítají; ruční zadání adresy ale port neuhodne, proto v takové situaci použij QR kód.