Страница 1 из 1

PHP Master Server вопросы

СообщениеДобавлено: 20 май 2011, 00:07
qmaks
Хочу написать мастер сервер на PHP. Клиент на веб плере, сервер создается из под клиента.
Регистрировать новую игру понятно как, отправляем запрос к PHP скрипту, который сохраняет в табличке параметры созданного сервера.
Что делать если сервер на клиенте закрыли, и он не отослал сообщение на PHP сервер о том, что он выключен. Допустим просто закрыли вкладку с игрой. Как на пхп можно определить что данный сервер мертв и убрать его из списка?

p.s В веб плеере OnApplicationQuit, не работает.

Re: PHP Master Server вопросы

СообщениеДобавлено: 20 май 2011, 02:01
gnoblin
периодически слать с игрового сервера на мастер сервер т.н. heartbeat

Re: PHP Master Server вопросы

СообщениеДобавлено: 20 май 2011, 02:43
Neodrop
В вебплеере можно запросто определить потерю фокуса страницей. Или использовать метод OnDestroy()

Re: PHP Master Server вопросы

СообщениеДобавлено: 22 сен 2011, 19:46
t.key
В вебплеере можно запросто определить потерю фокуса страницей.

Можно по подробней?
Или использовать метод OnDestroy()

Как это работает? Страницу закрываем, а плеер все еще будет работать, все сотрет и закроется?

Re: PHP Master Server вопросы

СообщениеДобавлено: 23 сен 2011, 09:55
t.key
MonoBehaviour.OnApplicationQuit();

ЗЫ Форум умер. Я сам с собой разговариваю. ~x(

Re: PHP Master Server вопросы

СообщениеДобавлено: 04 окт 2011, 00:06
Rip
:D :D :D конечно давно уже пост висит.
Вот определить так просто не получится потому, что пхп только принемает запрос и отсылает и сразу валится.
Поэтому при запросе в туже комнату др. пользователем сверять время всех (гдето в бд) и у кого большой тайаут выкидывать из комнаты.
правка: Про потерю фокуса наверно имелось ввиду что можно отловить закрытие окна браузера, и в этом событии
отправить запрос на удаление записей из бд, чистке так сказать. :-B (на самом деле я не знаю, но похоже на правду :ymhug: )

Re: PHP Master Server вопросы

СообщениеДобавлено: 04 окт 2011, 13:05
t.key
Обновление страницы веб плеер не отлавливает. Если сервер обновит страницу или просто рухнет (выключится комп), будет сложно.

Re: PHP Master Server вопросы

СообщениеДобавлено: 05 окт 2011, 07:57
DavilSin
Посылать с клиента запрос в бд на запись времени с периодичностью допустим 5 минут. А на сервере обходить скриптом эти записи и где больше 6 минут грохать

Re: PHP Master Server вопросы

СообщениеДобавлено: 08 окт 2011, 11:13
Rip
Да, при создании комнаты показываеш все доступные комнаты, и проверяеш время если оч устарело удаляется вся комната. А в нутри комнаты определяют сами клиенты в ней, кто давно не обновлял время тот значит офф, и удаляется сервером.

Re: PHP Master Server вопросы

СообщениеДобавлено: 08 окт 2011, 12:59
t.key
Только не в минутах, а в секундах. (popcorn)
Синтаксис:
Используется php
$del = mysql_query("delete from servers where timediff(now(), time) > sec_to_time(30);");
$res = mysql_query("select * from servers where timediff(now(), time) < sec_to_time(12) order by id desc;");
 


А потом отобразить.

Re: PHP Master Server вопросы

СообщениеДобавлено: 10 окт 2011, 09:09
DavilSin
Функция TimeDiff
Синтаксис:
Используется csharp
public function TimeDiff($filter='dhis',$nozerro=false){}

Где:
$filter - фильтр единиц для вывода (d - дни, h - часы, i - минуты, s - секунды)
$nozerro - определяет показывать ли нулевые значения (false - показывать, true - не показывать)

Пример вызова
Синтаксис:
Используется csharp
// русские единицы
$text=new timediff('01.01.2009 00:00:00',false, 'ru');
echo 'До Нового года осталось: '.$text->TimeDiff('dhis',true);
// единица на английском
$text=new timediff('01.01.2009 00:00:00',false, 'en');
echo 'До Нового года осталось: '.$text->TimeDiff('dhis',true);
$text=new timediff('26.12.2008 00:00:00',false, 'ru');
// выводим с нулями
echo 'До конца этого дня : '.$text->TimeDiff('dhis',false);
$text=new timediff('26.12.2008 00:00:00',false, 'ru');
// прячем нули и секунды
echo 'До конца этого дня : '.$text->TimeDiff('dhi',true);
// разницу в конкретных датах
$text=new timediff('25.12.2008 10:15:00','25.12.2008 19:00:00', 'ru');
echo 'Я работаю сегодня : '.$text->TimeDiff('dhis',true);
 

Re: PHP Master Server вопросы

СообщениеДобавлено: 17 янв 2012, 14:07
Gamelov
Добрый день! Требуется специалис для создания- настройки мастер-сервера на кс 1.6, готов щедро проплатить, если таковы найдутся посьба обращятся в скайп - Ganja_cs.
С Ув. Борис Александрович. ;)