WebSocket API prohlížeče má send(). Neobsahuje obecnou metodu ping(), kterou by JavaScript mohl odesílat rámce protokolu Ping.

Pokud vaše aplikace odešle textovou zprávu jako {"type":"heartbeat"}, jsou to aplikační data. Server musí zprávě rozumět a definovat odpověď. Server, který tuto smlouvu neimplementuje, není povinen odpovědět protokolovým Pong jen proto, že text obsahuje slovo ping.

Definujte, co potvrzení znamená, jak identifikuje čekající signál a kdy je staré potvrzení příliš pozdě. Držte to oddělené od potvrzení obchodní operace.

Časovač v JavaScriptu má také omezení plánování. Karty na pozadí a vytížená hlavní vlákna mohou zpozdit zpětná volání. Nevykládejte zmeškanou přesnou hranici časovače jako průkazný důkaz, že proxy přestala předávat data.

Prohlížeč může řídicí rámce protokolu zpracovávat interně, ale to nedává aplikačnímu kódu přenosný pohled na každý Ping nebo Pong. Pokud stránka potřebuje vlastní rozhodnutí o životnosti, použijte výslovnou aplikační smlouvu a politiku obnovy.

Zásuvka, jejíž readyState je OPEN, se místně považuje za otevřenou; není to nezávislé měření, že vzdálená aplikace zpracovala vaši poslední zprávu. Použijte důkazy, které odpovídají otázce, na kterou skutečně potřebujete odpovědět.

Související články