WebSocket API preglednika ima send(). On ne izlaže opću metodu ping() kojom bi JavaScript mogao slati Ping okvire protokola.

Ako vaša aplikacija pošalje tekstualnu poruku poput {"type":"heartbeat"}, to su aplikacijski podaci. Server mora razumjeti poruku i definirati odgovor. Server koji ne provodi taj ugovor nije dužan odgovoriti protokolskim Pong-om samo zato što tekst sadrži riječ ping.

Definirajte šta potvrda znači, kako identificira otkucaj koji čeka i kada je stara potvrda previše zakašnjela. Držite to odvojeno od potvrde poslovne operacije.

JavaScript tajmer također ima ograničenja zakazivanja. Pozadinski tabovi i zauzete glavne niti mogu odgoditi povratne pozive. Ne tumačite propuštenu tačnu granicu tajmera kao konačan dokaz da je proxy prestao prosljeđivati.

Preglednik može interno obraditi kontrolne okvire protokola, ali to aplikacijskom kodu ne daje prenosiv pregled svakog Ping ili Pong okvira. Ako stranici treba vlastita odluka o živosti, koristite izričit aplikacijski ugovor i politiku oporavka.

Utikač čiji je readyState OPEN lokalno se smatra otvorenim; to nije neovisno mjerenje da je udaljena aplikacija obradila vašu posljednju poruku. Koristite dokaze koji odgovaraju pitanju na koje zapravo morate odgovoriti.

Povezani članci