Хочу пропиарить свою небольшую игрушку, которую я написал на Python, которая использует App Engine в качестве платформы, и в которой я реализовал comet через обычный polling.
Геймплей — казуальная разновидность risk-игр. Все банально, захватите мир и станете победителем. Итак, знакомьтесь: gumwars.com.
Подкатом — подробности реализации и расчет стоимости поддержки на App Engine.
Как можно заметить на скриншоте, клиентская сторона реализована на Google Maps API, он прекрасно подходит для визуализации risk-игр. С серверной стороной все сложнее.
Хотя App Engine и может держать коннект до 30 секунд, одновременно может обрабатываться только до 30 соединений. Поэтому long polling на App Engine отпадает и остается обычный polling. Решение не эффективное, но изначально хотелось посмотреть как будет вести себя App Engine при таких условиях, к тому же, это прекрасный краш-тест. Итак, каждый пользователь генерирует один запрос в секунду.
Вся эта затея — эксперимент. И этот эксперимент еще не закончен, хочется нагнать аудиторию и посмотреть как будет вести себя платформа на достаточной загрузке. Но все же, несколько прогнозируемых расчетов.
1000 запросов на получение событий колеблются в районе $0.001-0.002, а так как от одного клиента игра получает около 3600 запросов в час, то имеем стоимость около $0.0072 за человеко-час игры. Хотя, эти расчеты достаточно условны.
В дальнейшем я планирую написать небольшой отчет, что же из этого получилось. Также, позже хочу отточить реализацию polling и опубликовать отдельной open source библиотекой (python и js части).
Ну и ждем поддержку WebSockets для App Engine, конечно же.
PS.К сожалению, нет кармы для блога «Я пиарюсь». Перенес в «Я пиарюсь».
Геймплей — казуальная разновидность risk-игр. Все банально, захватите мир и станете победителем. Итак, знакомьтесь: gumwars.com.
Подкатом — подробности реализации и расчет стоимости поддержки на App Engine.
Техническая реализация
Как можно заметить на скриншоте, клиентская сторона реализована на Google Maps API, он прекрасно подходит для визуализации risk-игр. С серверной стороной все сложнее.
Хотя App Engine и может держать коннект до 30 секунд, одновременно может обрабатываться только до 30 соединений. Поэтому long polling на App Engine отпадает и остается обычный polling. Решение не эффективное, но изначально хотелось посмотреть как будет вести себя App Engine при таких условиях, к тому же, это прекрасный краш-тест. Итак, каждый пользователь генерирует один запрос в секунду.
Расчет стоимости поддержки и актуальность App Engine для polling
Вся эта затея — эксперимент. И этот эксперимент еще не закончен, хочется нагнать аудиторию и посмотреть как будет вести себя платформа на достаточной загрузке. Но все же, несколько прогнозируемых расчетов.
1000 запросов на получение событий колеблются в районе $0.001-0.002, а так как от одного клиента игра получает около 3600 запросов в час, то имеем стоимость около $0.0072 за человеко-час игры. Хотя, эти расчеты достаточно условны.
Планы
В дальнейшем я планирую написать небольшой отчет, что же из этого получилось. Также, позже хочу отточить реализацию polling и опубликовать отдельной open source библиотекой (python и js части).
Ну и ждем поддержку WebSockets для App Engine, конечно же.
PS.