Как определить, поддерживает ли браузер фреймы для пинг-понга в javascript?

У меня есть приложение веб-сокета, в котором сервер (написанный на Java с использованием Netty) периодически отправляет пинг-фреймы клиентам, чтобы определить, живы ли их соединения (действительно, может случиться так, что сетевое соединение клиента прерывается, и сервер не может обнаружить его). Но что делать, если конкретный браузер не поддерживает функцию пинг-понга? Как я могу обнаружить это в javascript? Например, для веб-сокета я использую if(!window.WebSocket) {...}, а как насчет пинг-понга?


person f_ficarola    schedule 14.03.2014    source источник


Ответы (1)


Клиент WebSocket, который не поддерживает ping/pong, не соответствует RFC6455 — эта функция является обязательной.

Все основные браузеры поддерживают ping/pong.

Невозможно обнаружить функцию из JavaScript.

person oberstet    schedule 14.03.2014
comment
Спасибо, поэтому обнаружения поддержки веб-сокетов достаточно. - person f_ficarola; 14.03.2014
comment
Из моего теста последняя версия IE/Firefox/Chrome/Opera/Safari на iOS будет отвечать PONG на PING с сервера. Однако Safari 5 для Windows не поддерживает эту функцию. - person Mr.Wang from Next Door; 07.04.2015