Free MasterServer on PHP

Для тех, кто хочет сделать мир лучше.

0
Голосов нет
 
Всего голосов: 0

Сообщение
Автор
Stolen96
Нович0к
Нович0к
Сообщения: 9
Зарегистрирован: 30.05.2011
Благодарил (а): 2 раза
Поблагодарили: 10 раз

#1 Сообщение 27.06.2013, 07:40

Добрый день, представляю Вам бесплатный мастер сервер на php.
Так как за последнее время открылось куча мастер серверов, то некоторые умные люди начали продавать мастера со скудным функционалом за не маленькие деньги(от 200$ до 600$). Именно поэтому я решил выложить данный мастер сервер бесплатно.
Мастер сервер будет дорабатываться и улучшаться.
Функции:
На данный момент их не так много, но я занимаюсь улучшением мастера.
1) Резолвинг домена в ip
2) Веб-интерфейс для управления
3) Возможность отключить сортировку по пингу, т.е. вы можете полностью контролировать порядок выдачи серверов клиенту.
4) Статистика запросов, данная функция будет переделана т.к. один запрос из кс может генерировать до 7 запросов на мастер.

Планируется ещё куча всего, в том числе и обновление списка с заданным интервалом, статистика запросов на мастер сервер в виде графика, отправка серверов клиенту несколькими пакетами(при большом кол-ве серверов) и так далее.
Инструкция по установке:
!Установка только на VDS\Dedicated Server
1) Установить screen на ваш сервер
CentOS: yum install screen
Debian: apt-get install screen
Ubuntu: sudo apt-get install screen
2) В файле /etc/php.ini найти переменную disable_functions и убрать оттуда фунцию exec
3) Залить всё в директорию домена на котором ставите ПУ
4) Настройте файл master/config.php
5) Зайдите в ПУ и запустите мастер сервер
История версий:
0.1 - Первый релиз.
0.2 - Добавлен резолвинг, панель управления.
Автор: Stolen, то есть Я.

Скачать:
masterserver_v0.2.rar
(141.08 КБ) 500 скачиваний
masterserver_v0.2.rar
(141.08 КБ) 500 скачиваний
Страница на github:
https://github.com/Stolenko/Masterserver
Последний раз редактировалось Stolen96 11.07.2013, 00:12, всего редактировалось 1 раз.

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#2 Сообщение 27.06.2013, 21:45

Stolen96
Советую воспользоваться Github-ом для большего удобства.

Написано кстати неплохо, правда запускать процессы из PHP - плохой стиль, да и сам PHP не очень хорошо подходит для того, что-бы быть запущенным в фоне (сильно утекает память). Не думали воспользоваться для этого nodejs например? Ещё mysql можно было-бы на redis заменить (раз уж для VDS - там не важно что ставить), или вообще всё хранить в памяти внутри демона...

Эти проекты могут помочь вам ускорить процесс разработки:
https://github.com/Austinb/GameQ
https://github.com/kostya0shift/GameQ3

Stolen96
Нович0к
Нович0к
Сообщения: 9
Зарегистрирован: 30.05.2011
Благодарил (а): 2 раза
Поблагодарили: 10 раз

#3 Сообщение 29.06.2013, 04:10

MOZGIII
На другой язык не особо хочется всё переносить, так как на этом функционал ещё не весь в МС воплотил :)
С redis никогда не сталкивался, а читать тонну манов лень.
Интересно, чем мне скрипт опроса серверов может помочь?)

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#4 Сообщение 29.06.2013, 12:10

Stolen96
Так потом переносить сложнее будет...
Redis тут даже не нужен - достаточно просто всё в памяти хранить, хотя и mysql тоже сработает наверное.
Не знаю чем может помочь сейчас, но вообще можно и количество онлайн игроков в панели показывать... Но это так, пример, может ещё для чего придумать получиться.

Аватара пользователя
MvPRO Administrator
Нович0к
Нович0к
Сообщения: 8
Зарегистрирован: 10.07.2013
Откуда: Москва
Поблагодарили: 6 раз
Контактная информация:

#5 Сообщение 10.07.2013, 18:36

Переместите на github или аналоги. Тогда действительно будет возможность сделать качественный мс совместными усилиями.

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#6 Сообщение 10.07.2013, 19:21

MvPRO Administrator
+1

Stolen96
Мы могли бы и сами организовать работу, но правильнее будет если исходный репо сделаете вы.

Stolen96
Нович0к
Нович0к
Сообщения: 9
Зарегистрирован: 30.05.2011
Благодарил (а): 2 раза
Поблагодарили: 10 раз

#7 Сообщение 10.07.2013, 22:05

Пытался и на github и на code.google залить, но что-то не получается -_-

Аватара пользователя
MvPRO Administrator
Нович0к
Нович0к
Сообщения: 8
Зарегистрирован: 10.07.2013
Откуда: Москва
Поблагодарили: 6 раз
Контактная информация:

#8 Сообщение 10.07.2013, 23:36

Stolen96 писал(а):Пытался и на github и на code.google залить, но что-то не получается -_-
А в чём проблема? Я никакого опыта не имею, но смог за 5 минут сделать проект...

https://github.com/MvPRO-Administrator/php-masterserver

Напишите ник на гите.

Stolen96
Нович0к
Нович0к
Сообщения: 9
Зарегистрирован: 30.05.2011
Благодарил (а): 2 раза
Поблагодарили: 10 раз

#9 Сообщение 10.07.2013, 23:48

MvPRO Administrator писал(а):
Stolen96 писал(а):Пытался и на github и на code.google залить, но что-то не получается -_-
А в чём проблема? Я никакого опыта не имею, но смог за 5 минут сделать проект...

https://github.com/MvPRO-Administrator/php-masterserver

Напишите ник на гите.
https://github.com/Stolenko/masterserver

Аватара пользователя
MvPRO Administrator
Нович0к
Нович0к
Сообщения: 8
Зарегистрирован: 10.07.2013
Откуда: Москва
Поблагодарили: 6 раз
Контактная информация:

#10 Сообщение 10.07.2013, 23:53

Stolen96 писал(а):
MvPRO Administrator писал(а):
Stolen96 писал(а):Пытался и на github и на code.google залить, но что-то не получается -_-
А в чём проблема? Я никакого опыта не имею, но смог за 5 минут сделать проект...

https://github.com/MvPRO-Administrator/php-masterserver

Напишите ник на гите.
https://github.com/Stolenko/masterserver
Вам надо форк сделать) А лучше самому залить, например при помощи этого: http://github-windows.s3.amazonaws.com/GitHubSetup.exe

Stolen96
Нович0к
Нович0к
Сообщения: 9
Зарегистрирован: 30.05.2011
Благодарил (а): 2 раза
Поблагодарили: 10 раз

#11 Сообщение 11.07.2013, 00:10

MvPRO Administrator писал(а):Вам надо форк сделать) А лучше самому залить, например при помощи этого: http://github-windows.s3.amazonaws.com/GitHubSetup.exe
Вроде всё сделал, благодарю

Аватара пользователя
MvPRO Administrator
Нович0к
Нович0к
Сообщения: 8
Зарегистрирован: 10.07.2013
Откуда: Москва
Поблагодарили: 6 раз
Контактная информация:

#12 Сообщение 11.07.2013, 16:22

Stolen96 писал(а):
MvPRO Administrator писал(а):Вам надо форк сделать) А лучше самому залить, например при помощи этого: http://github-windows.s3.amazonaws.com/GitHubSetup.exe
Вроде всё сделал, благодарю
Всё, что на данный момент увидел добавил в форке: https://github.com/MvPRO-Administrator/ ... er/compare

Добавлено спустя 15 часов 11 минут 24 секунды:
Также думаю будет полезно сделать вывод системной команды для php в конфиг, потому что не у всех установлен базовый php, для работы php достаточно фреймворка php-fpm, скажем в моей системе команда php - "php5-fpm", а не "php", как вы используйте в скрипте запуска мс.

Stolen96
Нович0к
Нович0к
Сообщения: 9
Зарегистрирован: 30.05.2011
Благодарил (а): 2 раза
Поблагодарили: 10 раз

#13 Сообщение 11.07.2013, 16:37

MvPRO Administrator писал(а): Также думаю будет полезно сделать вывод системной команды для php в конфиг, потому что не у всех установлен базовый php, для работы php достаточно фреймворка php-fpm, скажем в моей системе команда php - "php5-fpm", а не "php", как вы используйте в скрипте запуска мс.
В версии 0.3 сделаю

Аватара пользователя
MvPRO Administrator
Нович0к
Нович0к
Сообщения: 8
Зарегистрирован: 10.07.2013
Откуда: Москва
Поблагодарили: 6 раз
Контактная информация:

#14 Сообщение 13.07.2013, 03:58

Один человек с этого форума попросил для него ваш мс запустить... так что вот какие проблемы возникли, опишу.

Функция выключения у меня не сработала, уверены, что правильно написали функцию?

Пока сделал так:
костыль =)
/*$fsock = fsockopen("udp://".$settings['host'],$settings['port'],$errnum,$errstr,2);
fwrite($fsock, "\x31\xFF\x30\x2E\x30\x2E\x30\x2E\x30\x3A\x30\x00\x5C\x67\x61\x6D\x65\x64\x69\x72\x5C\x63\x73\x74\x72\x69\x6B\x65\x00");*/
exec("killall screen");
в ms.php немного не понял что значит if(!$status['0']) - что такое ['0']?

Сделал так:
code
if(!$status)
{
echo("exited, something is wrong");
exit;
}
else echo("ms works and binded");
Пока так и не понял в какой момент мс обновляет сервера из БД. Не хотелось бы перезагружать мс только для того, чтобы обновить список серверов. Может быть сделать обновление из БД каждые 5 минут?

Stolen96
Нович0к
Нович0к
Сообщения: 9
Зарегистрирован: 30.05.2011
Благодарил (а): 2 раза
Поблагодарили: 10 раз

#15 Сообщение 13.07.2013, 06:58

MvPRO Administrator писал(а):Один человек с этого форума попросил для него ваш мс запустить... так что вот какие проблемы возникли, опишу.

Функция выключения у меня не сработала, уверены, что правильно написали функцию?

Пока сделал так:
костыль =)
/*$fsock = fsockopen("udp://".$settings['host'],$settings['port'],$errnum,$errstr,2);
fwrite($fsock, "\x31\xFF\x30\x2E\x30\x2E\x30\x2E\x30\x3A\x30\x00\x5C\x67\x61\x6D\x65\x64\x69\x72\x5C\x63\x73\x74\x72\x69\x6B\x65\x00");*/
exec("killall screen");
в ms.php немного не понял что значит if(!$status['0']) - что такое ['0']?

Сделал так:
code
if(!$status)
{
echo("exited, something is wrong");
exit;
}
else echo("ms works and binded");
Пока так и не понял в какой момент мс обновляет сервера из БД. Не хотелось бы перезагружать мс только для того, чтобы обновить список серверов. Может быть сделать обновление из БД каждые 5 минут?
Мастер пока что не обновляет список. Сделаю в 0.3
code
if(!$status)
{
echo("exited, something is wrong");
exit;
}
else echo("ms works and binded");
Что это вообще?

Ответить Вложения 1