Naršyklės WebSocket API turi send(). Ji nesuteikia bendro ping() metodo, kuriuo JavaScript galėtų siųsti protokolo Ping kadrus.

Jei jūsų programa siunčia tekstinę žinutę, pavyzdžiui, {"type":"heartbeat"}, tai yra taikomosios programos duomenys. Serveris turi suprasti žinutę ir apibrėžti atsakymą. Serveris, kuris neįgyvendina šios sutarties, neprivalo atsakyti protokolo Pong vien todėl, kad tekste yra žodis ping.

Apibrėžkite, ką reiškia patvirtinimas, kaip jis identifikuoja laukiantį širdies plakimą ir kada senas patvirtinimas ateina per vėlai. Laikykite tai atskirai nuo verslo operacijos patvirtinimo.

JavaScript laikmatis taip pat turi planavimo apribojimų. Fono skirtukai ir užimtos pagrindinės gijos gali atidėti atgalinius iškvietimus. Nelaikykite praleistos tikslios laikmačio ribos galutiniu įrodymu, kad tarpinė serveris nustojo persiųsti.

Naršyklė gali viduje apdoroti protokolo valdymo kadrus, bet tai nesuteikia programos kodui perkeliamo kiekvieno Ping ar Pong vaizdo. Jei puslapiui reikia savo gyvybingumo sprendimo, naudokite aiškią taikomosios programos sutartį ir atkūrimo politiką.

Lizdas, kurio readyState yra OPEN, laikomas atidarytu vietoje; tai nėra nepriklausomas matavimas, kad nuotolinė programa apdorojo jūsų paskutinę žinutę. Naudokite įrodymus, atitinkančius klausimą, į kurį iš tikrųjų turite atsakyti.

Susiję straipsniai