WebSocket откуцаји у прегледачу захтевају апликацијски протокол
Дизајнирајте договорени апликацијски откуцај када JavaScript у прегледачу не може директно да шаље WebSocket Ping оквире.
WebSocket API прегледача има send(). Он не излаже општу методу ping() којом би JavaScript могао да шаље Ping оквире протокола.
Ако ваша апликација пошаље текстуалну поруку попут {"type":"heartbeat"}, то су апликацијски подаци. Сервер мора да разуме поруку и дефинише одговор. Сервер који не спроводи тај уговор није дужан да одговори протоколским Pong-ом само зато што текст садржи реч ping.
Дефинишите шта потврда значи, како идентификује откуцај који чека и када је стара потврда превише закаснела. Држите то одвојено од потврде пословне операције.
JavaScript тајмер такође има ограничења заказивања. Позадинске картице и заузете главне нити могу да одложе повратне позиве. Не тумачите пропуштену тачну границу тајмера као коначан доказ да је прокси престао да прослеђује.
Прегледач може интерно да обрађује контролне оквире протокола, али то апликацијском коду не даје преносив преглед сваког Ping или Pong оквира. Ако страници треба сопствена одлука о живости, користите изричит апликацијски уговор и политику опоравка.
Утикач чији је readyState OPEN локално се сматра отвореним; то није независно мерење да је удаљена апликација обрадила вашу последњу поруку. Користите доказе који одговарају питању на које заиста треба да одговорите.