Srdcové signály WebSocket v prehliadači vyžadujú aplikačný protokol
Navrhnite dohodnutý aplikačný srdcový signál, keď JavaScript v prehliadači nemôže priamo odosielať rámce WebSocket Ping.
WebSocket API prehliadača má send(). Neposkytuje všeobecnú metódu ping(), ktorou by JavaScript mohol odosielať rámce Ping protokolu.
Ak vaša aplikácia odošle textovú správu ako {"type":"heartbeat"}, sú to aplikačné údaje. Server musí správe porozumieť a definovať odpoveď. Server, ktorý túto zmluvu neimplementuje, nie je povinný odpovedať protokolovým Pongom len preto, že text obsahuje slovo ping.
Definujte, čo potvrdenie znamená, ako identifikuje čakajúci srdcový signál a kedy je staré potvrdenie príliš neskoro. Držte to oddelene od potvrdenia obchodnej operácie.
Časovač v JavaScripte má tiež obmedzenia plánovania. Karty na pozadí a vyťažené hlavné vlákna môžu oneskoriť spätné volania. Neinterpretujte zmeškanú presnú hranicu časovača ako rozhodujúci dôkaz, že proxy prestala preposielať.
Prehliadač môže spracúvať riadiace rámce protokolu interne, ale to nedáva aplikačnému kódu prenosný pohľad na každý Ping alebo Pong. Ak stránka potrebuje vlastné rozhodnutie o životnosti, použite výslovnú aplikačnú zmluvu a politiku obnovy.
Zásuvka, ktorej readyState je OPEN, sa miestne považuje za otvorenú; nie je to nezávislé meranie toho, že vzdialená aplikácia spracovala vašu poslednú správu. Použite dôkazy, ktoré zodpovedajú otázke, na ktorú skutočne potrebujete odpovedať.