|
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
Синхронизация клиентской модели
Здравствуйте, появилась идея попробовать использовать фоновую синхронизацию клиента и сервера в игре.
На клиенте и сервере общая игровая модель. Клиент вызывает метод сервера например addGold, сервер проверяет возможность совершения действия, и в случае успеха изменяет модель, и отправляет ответ клиенту goldAdded, дальше клиент изменяет свою модель и рассылает событие. Идея состоит в том, чтобы синхронизировать модели в фоновом режиме Клиент отправляет так же addGold, дальше вызывается метод изменения модели, например с такой сигнатурой changeModel(target,method,value) changeModel('player.balance.gold','+=',100); Cервер изменяет моделm, и отправляет эту же команду на клиент. Клиент так же присваивает значение и рассылает событие. Теперь все view кто подписан слушать player.balance.gold, получают уведомления и выполняют им прtдписанные действия. Интересно услышать какие подводные камни, и есть ли готовые решения такого подхода. Слышал что похожу штуку реализует backBone.js, но ничего не слышал про использовании на флеш. Сервер node.js, связь сокет. |
|
|||||
Регистрация: Jan 2011
Сообщений: 200
|
Не совсем понял, что вы хотите? У вас есть 1 клиент, который отправляет событие на сервер, получает ответ и обновляет свои вьюхи, или у вас 10 клиентов ждут события от 1го, чтобы вдесятером обновить свои вьюхи?
|
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
Клиент 1. Который подписан на изменения своей модели с сервера, можно так сказать. Разница в том чтобы делать это прозрачно.
Но если развить идею ничего не мешает подписываться на глобальные объекты типа чата разным пользователям. changeModel(chat.messages,'push',{msg:'hi'}); Я не думаю что в этой идее есть что-то новое, просто насколько правильно делать так. |
Часовой пояс GMT +4, время: 17:11. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|