[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка по онлайну сервера.
Agahnim
Делаю каталог серверов для своего сайта. Столкнулся с проблемой реализации сортировки по онлайну серверов (На страницу должны выводится только онлайн сервера) Самому в голову кроме скрипта, что выводил бы единичку или нолик,в зависимости от состояния сервера , нечего в голову не приходит.

Нужны идеи реализации.
Заранее благодарен



Спустя 22 минуты, 21 секунда (30.07.2011 - 16:17) jetistyum написал(а):
ну а какие еще могут быть идеи. не по звездам же определять состояние.
раз в 5 минут (10, 20) опрашивать сервера и сохранять их состояние в поле бд, дальше фильтровать

Спустя 6 минут, 1 секунда (30.07.2011 - 16:23) Agahnim написал(а):
То есть без крона и прочей шелухи тут не обойтись?
Просто если серверов будет около 1 000 я представляю как это будет грузить сервер, на нем и так нагрузка приличная.

Спустя 7 минут (30.07.2011 - 16:30) jetistyum написал(а):
Да не сильно это будет грузить сервер, отправить пинг на 1000 серверов разве это нагрузка? smile.gif Просто естественно это неудобно делать в момент просмотра страницы, и лучше делать это заранее. запсукаешь раз в минуту по крону скрипт который проверяет 100 серверов, и у тебя будет относительно свежее состояние для серверов.

Спустя 15 минут, 25 секунд (30.07.2011 - 16:45) Agahnim написал(а):
Хорошо, на словах все просто.
Осталось только понять, как это сделать на коде.

если только fetch_rows а потом fpsocket....

У меня правильный ход мыслей?

Спустя 48 минут, 20 секунд (30.07.2011 - 17:33) jetistyum написал(а):
зависит от того какой у тебя алгоритм опроса серверов, и на что ты их проверяешь. можно пингами через exec(), можно полностью организовать алгоритм пинга средствами php, есть готовые либы.

если на сервере должен работать веб-сервер можно пытаться дернуть какую-то страницу с этого сервера - таким образом ты будешь знать что сервер не только пингуется, но и все на нем хорошо работает.

если игровой сервер, возможно есть какой-то клиент (или алгоритм) который позволяет проверить рабочесть сервера и доступность к подключению ...

Ну и по звездам конечно wink.gif

Спустя 12 минут, 9 секунд (30.07.2011 - 17:45) Agahnim написал(а):
Сервер игровой. Я просто пингую на порт и все.
Загадка для меня - сделать так чтобы единичка в столбец online записалась не во все сервера а только в те самые online.

Спустя 11 минут, 5 секунд (30.07.2011 - 17:57) jetistyum написал(а):
На какой порт ты собираешься пинговать?

Спустя 4 минуты, 52 секунды (30.07.2011 - 18:01) Agahnim написал(а):
Пользователь указывает сам.

Спустя 4 минуты, 6 секунд (30.07.2011 - 18:05) jetistyum написал(а):
вопрос с подвохом wink.gif на порт пинговать нельзя. В общем ты хочешь сделать то, что не знаешь как работает. иди учи

Спустя 7 минут, 50 секунд (30.07.2011 - 18:13) Agahnim написал(а):
Я знаю как это работает - у меня есть работающий скрипт для пинга.
То что я выразился не правильно - я не виноват.

Пруф:

$status = GetServerStatus($_GET['ip'],$_GET['port']); //ИП
function GetServerStatus($site, $port) {
// Тут стили для картинок.
$fp = @fsockopen($site, $port, $errno, $errstr, 2);
if (!$fp) { //Оффлайн
$imagepath = $styleimg1;
$image=imagecreatefrompng($imagepath);
header('Content-Type: image/png');
imagepng($image);
} else { //Онлайн
$imagepath = $styleimg2;
$image=imagecreatefrompng($imagepath);
header('Content-Type: image/png');
imagepng($image);
}
}



Тоже самое можно приладить и к скрипту. Например:


$fp = @fsockopen($row[0], $row[1], $errno, $errstr, 2);
if (!$fp) { //Оффлайн
} else { //Онлайн
}

Спустя 57 минут, 56 секунд (30.07.2011 - 19:11) Agahnim написал(а):
Сделал все сам. Тема неактуальна.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.