Вопросы по теории и логике приложения

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
graf8787
Сообщения: 7
Зарегистрирован: 01 сен 2013, 13:47

Вопросы по теории и логике приложения

Сообщение graf8787 »

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

К примеру мы пишем пресловутую ферму.
1. Насколько я понимаю, живет она на все тех же УРЛреквест?
2. Теоретически разберем элементарный процесс роста растения, не рассматривая исключения

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

соответственно, если пользователь не стал ждать бананов в онлайне:

- вход-авторизация-бла-бла-бла
- ...
- загружаем данные по грядкам
-- в то числе по нашим бананам
-- сервер результат сообщаем приложению.
-- приложение запоминает когда будет результат и запускает таймер, по достижению которого стучится на сервер и спрашивает, а правда ли бананы доросли?
Аватара пользователя
alexei
Разработчик
Разработчик
Сообщения: 836
Зарегистрирован: 21 янв 2010, 19:44

Re: Вопросы по теории и логике приложения

Сообщение alexei »

Самый простой вариант. Сервер стучится каждые N секунд и спрашивает, а что выросло? Если что-то выросло клиент отображает.
Есть варианты с сокетами и лонгполла, т.е. обращение до тех пор как сервер не ответит. А он отвечает, когда что-то выросло.
cibersant
Сообщения: 199
Зарегистрирован: 23 окт 2011, 18:34

Re: Вопросы по теории и логике приложения

Сообщение cibersant »

а попроще никак.Сервер запомнил время посадки,клиент тоже запомнил время посадки.На клиенте запускаем таймер,по истечении таймера запрос на сервер,сервер настоящее время отнимает время посадки ,если 2 часа,значит бананы выросли-то если клиент в сети.Если клиент вышел и по новой зашёл то сразу запрос если два часа прошло значит бананы выросли.
DDer
Сообщения: 31
Зарегистрирован: 14 апр 2013, 21:11

Re: Вопросы по теории и логике приложения

Сообщение DDer »

отправляется запрос на сервер с сообщением, что на данной грядке пытаемся посадить бананы.
- сервер проверяет можно ли на ней садить бананы. помечает грядку как используемую для выращивания бананов с результатом через два часа. результат сообщаем приложению.
- приложение запоминает когда будет результат и запускает таймер, по достижению которого стучится на сервер и спрашивает, а правда ли бананы доросли?
Все так!!!НО НЕ СТУЧИТСЯ ОН ПО ТАЙМЕРУ!!!(Для этого по ходу там и сделали кнопку собрать урожай :D ) Проверять не нужно, приложение без проверки говорит игроку да бананы доросли и сервер знает, что они выросли и клиент, но сравнивать незачем, НИКАКИХ НЕ НУЖНЫХ ПРОВЕРОК!!!
Самый простой вариант. Сервер стучится каждые N секунд и спрашивает, а что выросло? Если что-то выросло клиент отображает.
УЖАС!!!!Бррр Во первых наверно не сервер, а клиент стучится но не важно :D урлреквест по таймеру это просто пи пи пи!!!
Клиент знает что и когда выросло и не у кого ничего не спрашивает!!!
Все строго по клику игрока собрать, посадить и т д (не знаю что там не играл) :D вот тут все вопросы к серверу!!! типа а правда там можно посадить? а правда они там выросли? и т д
graf8787
Сообщения: 7
Зарегистрирован: 01 сен 2013, 13:47

Re: Вопросы по теории и логике приложения

Сообщение graf8787 »

Все так!!!НО НЕ СТУЧИТСЯ ОН ПО ТАЙМЕРУ!!!(Для этого по ходу там и сделали кнопку собрать урожай :D )
это собирать урожай нужно по клику, но показать, что он уже поспел и на него можно кликать - по таймеру (но не каждые Н секунд, а по его завершению). В остальном спасибо
DDer
Сообщения: 31
Зарегистрирован: 14 апр 2013, 21:11

Re: Вопросы по теории и логике приложения

Сообщение DDer »

это собирать урожай нужно по клику, но показать, что он уже поспел и на него можно кликать - по таймеру (но не каждые Н секунд, а по его завершению). В остальном спасибо
Наверно ты не понял :D По таймеру !!!Только показывать!!! Но ни какого обращения к серверу !!!

Клиент знает что бананы растут 2 часа
И сервер знает что что они растут 2 часа
При истечении этого времени по таймеру Нет абсолютно никакого смысла им переговариваться!!!
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: Вопросы по теории и логике приложения

Сообщение Serge »

DDer
почему это нет? Надо как бы эти бананы на склад положить.

graf8787
в целом, вы то описали правильную идею, но, как по мне, это не очень хороший вариант. По той причине, что на всех этих фермах грядок по сотне штук, делать для каждой таймер и пулять на сервер сотню запросов в течении десяти секунд (игрок клацал не на все одновременно, а по одной грядке) - как по мне не очень оптимально.
Я не специалист в Java и C#, не знаю что за сокет сервер и "лонгполл", но, возможно, это было бы более оптимальным решением.
sasha^
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52

Re: Вопросы по теории и логике приложения

Сообщение sasha^ »

Serge насчет java 100% согласен.. сокет - это постоянное! соединение сервера и клиента с 2 потоками каждому: input/output.... потому сервер только когда захочет может послать и все... не спрашивая ни о чем клиента... + серверу не нужно хранить все в бд, т.к. он может свободно это хранить в оперативке, это не php, который нужно каждый раз заново...
P.S. + на сервере или клиенте достаточно 1 раз запустить таймер, который раз в секунду будет в цикле все проверять...
сокет-сервер(многопоточный разумеется) очень оптимальное решение для ферм и всех онлайн-игр... я щяс не вспомню, но видел пример фермы-игры на php-сервере, которая ужасно лагала, т.к. сервер не справлялся с запросами уже при +300 человек онлайна..., ведь человек может и по 5 запросов в секудну отправлять...
DDer
Сообщения: 31
Зарегистрирован: 14 апр 2013, 21:11

Re: Вопросы по теории и логике приложения

Сообщение DDer »

DDer
почему это нет? Надо как бы эти бананы на склад положить.
А разве там автоматом на склад сбор? По моему пока не соберешь на склад они не попадут
razerw
Сообщения: 15
Зарегистрирован: 30 май 2013, 21:27

Re: Вопросы по теории и логике приложения

Сообщение razerw »

DDer писал(а):бсолютно никакого
Все правильно говоришь. Нечего на сервер слать кучу запросов.
Ответить