WebSocket API pregledača ima send(). On ne izlaže opštu metodu ping() kojom bi JavaScript mogao da šalje Ping okvire protokola.

Ako vaša aplikacija pošalje tekstualnu poruku poput {"type":"heartbeat"}, to su aplikacijski podaci. Server mora da razume poruku i definiše odgovor. Server koji ne sprovodi taj ugovor nije dužan da odgovori protokolskim Pong-om samo zato što tekst sadrži reč ping.

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

JavaScript tajmer takođe ima ograničenja zakazivanja. Pozadinske kartice i zauzete glavne niti mogu da odlože povratne pozive. Ne tumačite propuštenu tačnu granicu tajmera kao konačan dokaz da je proxy prestao da prosleđuje.

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

Utikač čiji je readyState OPEN lokalno se smatra otvorenim; to nije nezavisno merenje da je udaljena aplikacija obradila vašu poslednju poruku. Koristite dokaze koji odgovaraju pitanju na koje zaista treba da odgovorite.

Povezani članci