WebSocket Ping nasuprot TCP Keepalive kroz proxy
Odaberite provjeru živosti WebSocket sugovornika umjesto da živ TCP socket smatrate dokazom da aplikacijski put odgovara.
Živ TCP socket, WebSocket sugovornik koji odgovara i koristan napredak aplikacije tri su različita opažanja:
| Dokaz | Što utvrđuje |
|---|---|
| Živost na razini TCP-a | Provjereni transportni put odgovara na toj razini |
| Odgovarajući WebSocket Pong | Sugovornik je odgovorio na taj kontrolni okvir |
| Potvrda aplikacije | Aplikacija je potvrdila radnju prema vlastitom protokolu |
Prednji proxy obično održava odvojene veze prema klijentu i prema odredištu. TCP sugovornik klijenta je proxy, dok Ping unutar uspostavljenog tunela putuje do WebSocket odredišta.
Odgovarajući Pong
Protokol zahtijeva da Pong koji odgovara nosi aplikacijske podatke Pinga. Iskoristite to podudaranje za prepoznavanje provjere na čekanju. Nezatraženi Pong dopušten je, ali ne traži potvrdu; slanje jednoga nakon svake podatkovne poruke daje drukčiji dokaz.
Preferirajte mehanizam otkucaja srca koji knjižnica podržava. JavaScript u pregledniku umjesto toga treba ugovor o otkucaju srca na razini aplikacije. Odaberite intervale i pragove neuspjeha prema opterećenju i mrežnoj politici. Pauze u raspoređivanju ili preopterećena petlja događaja mogu propustiti agresivan prag, a da pritom ne dokažu neuspjeh mreže.
Držite prijamnik u pogonu
Klijent treba stalni ulaz i izlaz da bi primao i obrađivao kontrolne okvire. Blokiranje tog mehanizma može lokalni nedostatak učiniti sličnim prekidu.
Ping stvara tunelski promet, ali svaki posrednik sam odlučuje što zadovoljava njegovu politiku mirovanja. Nijedan otkucaj srca ne jamči zaštitu od apsolutnog ograničenja trajanja veze.
Sugovornik može odgovarati na Ping i kada njegova aplikacija prestane proizvoditi ažuriranja, a tiha pretplata može biti zdrava. Pratite posljednji valjani Pong i značajan aplikacijski događaj odvojeno kada su oba važna. Pri neuspjehu sačuvajte rutu, protekla vremena i provjeru na čekanju, pa zatvorite ili oporavite kroz podržani životni ciklus.