Tarayıcının WebSocket API'sinde send() vardır. JavaScript'in protokolün Ping çerçevelerini göndermesi için genel bir ping() yöntemi sunmaz.

Uygulamanız {"type":"heartbeat"} gibi bir metin mesajı gönderiyorsa bu uygulama verisidir. Sunucu mesajı anlamalı ve bir yanıt tanımlamalıdır. Bu sözleşmeyi uygulamayan bir sunucu, yalnızca metinde ping kelimesi geçtiği için protokol Pong'u ile yanıt vermek zorunda değildir.

Bir onayın ne anlama geldiğini, bekleyen kalp atışını nasıl tanımladığını ve eski bir onayın ne zaman çok geç geldiğini tanımlayın. Bunu bir iş operasyonunun onayından ayrı tutun.

JavaScript zamanlayıcısının da çizelgeleme kısıtları vardır. Arka plan sekmeleri ve meşgul ana iş parçacıkları geri çağrıları geciktirebilir. Kaçırılan kesin bir zamanlayıcı sınırını, proxy'nin iletmeyi durdurduğuna dair kesin kanıt olarak yorumlamayın.

Tarayıcı protokolün denetim çerçevelerini dahili olarak işleyebilir, ancak bu uygulama koduna her Ping veya Pong'un taşınabilir bir görünümünü vermez. Sayfa kendi canlılık kararına ihtiyaç duyuyorsa açık bir uygulama sözleşmesi ve kurtarma ilkesi kullanın.

readyState değeri OPEN olan bir soket yerel olarak açık kabul edilir; bu, uzak uygulamanın son mesajınızı işlediğine dair bağımsız bir ölçüm değildir. Gerçekten yanıtlamanız gereken soruya uyan kanıtları kullanın.

İlgili makaleler