A böngésző WebSocket-szívverései alkalmazásprotokollt igényelnek
Tervezzen meg egyeztetett alkalmazás-szívverést, amikor a böngésző JavaScriptje nem tud közvetlenül WebSocket Ping-kereteket küldeni.
A böngésző WebSocket API-ja rendelkezik send(). Nem tesz elérhetővé általános ping() metódust arra, hogy a JavaScript a protokoll Ping-kereteit küldhesse.
Ha az alkalmazás olyan szöveges üzenetet küld, mint {"type":"heartbeat"}, az alkalmazásadat. A kiszolgálónak értenie kell az üzenetet, és definiálnia kell a választ. Az a kiszolgáló, amely nem valósítja meg ezt a szerződést, nem köteles protokoll-Ponggal válaszolni csak azért, mert a szövegben szerepel a ping szó.
Határozza meg, mit jelent a nyugtázás, hogyan azonosítja a függőben lévő szívverést, és mikor késik túlságosan egy régi nyugtázás. Tartsa elkülönítve egy üzleti művelet nyugtázásától.
A JavaScript időzítőjének is vannak ütemezési korlátai. A háttérlapok és a leterhelt fő szálak késleltethetik a visszahívásokat. Ne értelmezzen egy kihagyott pontos időzítőhatárt döntő bizonyítékként arra, hogy a proxy abbahagyta a továbbítást.
A böngésző képes belsőleg kezelni a protokoll vezérlőkereteit, de ez nem ad az alkalmazáskódnak hordozható képet minden Pingről vagy Pongról. Ha az oldalnak saját életképességi döntésre van szüksége, használjon kifejezett alkalmazásszerződést és helyreállítási szabályzatot.
Az a socket, amelynek readyState értéke OPEN, helyben nyitottnak számít; ez nem független mérés arról, hogy a távoli alkalmazás feldolgozta-e az utolsó üzenetét. Olyan bizonyítékot használjon, amely megfelel a valójában megválaszolandó kérdésnek.