Управление пользователями / сеансами между Sencha Touch и Rails (бэкэнд) - PullRequest
5 голосов
/ 18 января 2011

Я программирую мобильное приложение на Sencha Touch с бэкэндом Rails.Я обнаружил, что разделяю их все больше и больше по мере того, как углубляюсь в Sencha: где я в основном в точке, где Rails функционирует только как хранилище моей модели (база данных), а Sencha извлекает все, что ему нужно, через JSON - воспроизведениебольшая часть логики уже присутствует в рельсах.

Мой вопрос: что вы посоветуете, когда речь заходит о делегировании функций каждому приложению?Я реализовал REST в своем приложении Sencha, чтобы оно могло обмениваться данными с пользователем и связанными данными и сохранять их в том же формате.

Это правильный путь для управления сеансом пользователя?Должен ли я вернуть больше энергии рельсам?IE: где мне хранить сессию?Могу ли я сделать это на сервере?Должен ли я сделать это как управление сессионным хранилищем?Локальное хранилище?Я просто не знаю.

Буду признателен за любой совет.Спасибо.

1 Ответ

7 голосов
/ 18 января 2011

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

Интернет переходит от одного из представленных документов (где сервер делал абсолютно все, а браузер был по сути тупым) к тому, где браузер и сервер более симметричны - и ваши проблемы становятся все более актуальными в отношении сохранения двух полноценных MVC синхронизированные приложения!

(Возможно, мы могли бы увидеть мир, в котором серверы становятся довольно тупыми по сравнению с богатством приложений на стороне клиента. Я полагаю, что это только следующий цикл маятника толстого клиента / тонкого клиента, который качается на протяжении десятилетий ;-))

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

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

...