2016-06-05 4 views
0

Я изучал возможности доступа клиента к веб-сайту и проверки их пинга в игре (до сих пор, кажется, нет возможности использовать JS, но может быть способ с AJAX?). Без веб-сайта метод проверки ping будет использовать команду ping командной строки на адрес сервера через ICMP. Можно ли проверить ping клиента на игровой сервер с веб-сайтом middle-man?Проверьте серверный пинг в браузере?

EDIT: Если я делаю php-решение, как описано здесь: Pinging a server in php without the port? Могу ли я сделать что-то вроде проверки связи клиента с моим сайтом, а затем проверки с моего сайта на игровой сервер, а затем предсказать пинг клиента?

ответ

0

Вы не можете использовать команду пинг из JS, но вы можете использовать AJAX вызов какой-нибудь пустой файл на сервере, чтобы измерить время отклика:

var start = new Date().getTime(); 
$.ajax('http://your_server/empty_file') 
.always(function(data) { 
    console.log(new Date().getTime()-start); 
}); 

EDIT: Вы можете только игровой сервер «пинг» используя этот метод, если на нем запущен HTTP-сервер (вам может понадобиться настроить заголовки, чтобы разрешить для этого запросы по междоменной области). Если оба сервера находятся в одной и той же быстрой локальной сети, нет необходимости пинговать на обоих серверах отдельно, измерения будут одинаковыми.

+0

Есть ли способ измерить время отклика сервера, в котором я не являюсь? Этот сервер доступен через ICMP – Asymons

+0

На самом деле вы все еще можете использовать фрагмент кода выше для серверов ping, которые у вас нет, и даже если у них нет службы HTTP на них: ajax все равно попытается подключиться, что означает, что пакеты будут быть отправлен, и будет получен какой-то ответ. Вы по-прежнему просто должны измерять время и игнорировать ошибки. Единственный случай, когда это не будет работать, - это если порт 80 этих серверов заблокирован брандмауэром. – amaksr

+0

ОК, я обязательно попробую, спасибо! – Asymons