Игры для соц сетей - синхронизация с сервером
Господа, кто делал кэзуалки для соц сетей, интересует вопрос обмена информацией с сервером. Как лучше организовать, чтобы сервер не лег под десятками или сотнями тысяч запросов пользователей, а игра наподобие фермы(где все растет и изменяется)? Например у меня сейчас каждые 30 сек тупо обновляется информация на сервере, при этом передаются все объекты пользователя. По всей видимости это это не самый лучший вариант из-за большого объема траффика. Кто что может посоветовать?
|
Конечно передача ВСЕХ объектов - это не лучшее решение.
Лучше всего разработать/использовать предоставляемый протокол обмена данными, т.е. передавать т.н. пакеты, пакетом в свою очередь является структура данных, в случае с Flash - это может быть объект некого класса или просто типа Object сериализованный с помощью XML или JSON. Главное тут под понятием объект воспринимать просто структуру данных с несколькими полями, например так: Код AS1/AS2:
|
Тогда уж сериализованный в AMF или protoBuf )
Нужно передать только измененные объекты. Это достаточно накладно будет считать измененные объекты и передавать пользователю: гораздо лучше было бы работать в связке "изменилось-передали". Проще всего это сделать на сокетах. |
Помойму для игры типа Фермер можно обычным POST обойтись.. Передавать инфу в виде JSON и сразу. Нажал на посадить морковку - передал. Если в игра не устроена так, что серверу надо передавать инфу о действиях пользователя каждую секунду, то отличный вариант.
В Фермере почти 8 мил. чел ... Сколько там одновременно людей морковку собирает? ))) Не думаю что много. |
Ну э... а если я уточку пошлю нагадить Вам в помидоры? Об этом нужно узнавать как можно скорее.
|
да, тогда конечно сокет ) ну или long-polling, хотя я думаю, он убьёт сервер.
|
Для передачи использую AMF формат, от передачи раз в 30 секунд отказался, теперь запрос идет только когда что-то купил, переместил и т п.
В общем то готов переделать так чтобы передавалось только то что изменилось (передача всех данных -порядка 2-3 килобайт, если только то что изменилось, то в 10 раз меньше) - стоит ли овчинка выделки? Но главный вопрос даже в другом - нормально ли вообще с точки зрения безопасности если сначала изменяю на КЛИЕНТЕ и передаю изменения на сервер, при этом, например, могут передаваться деньги и уровень игрока. Легко ли будет особо умным перцам подделать запрос с нужными AMF -данными? |
Легко,клиенту верить нельзя ни в каком случае. Клиент посылает действие которое он хочет сделать, сервер уже решает может он это сделать. В свое время поимел много проблем с тем что доверял некоторые данные клиенту. Проблемы с безопасностью начинаются, когда приложение становится популярным и туда приходят более менее серьезные пользователи
|
Часовой пояс GMT +4, время: 20:54. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.