Создание приложений, работающих в режиме реального времени, с помощью служб Mobile Services и Pusher
Тема практической работы — добавление функции работы в режиме реального времени в приложение, использующее службы Microsoft Azure Mobile Services. После выполнения этой практической работы данные TodoList будут синхронизироваться в режиме реального времени со всеми выполняемыми экземплярами вашего приложения. В практической работе Отправка push-уведомлений пользователям вы научились отправлять пользователям push-уведомления о новых элементах в списке Todo. Push-уведомления хорошо подходят для информирования о нерегулярных изменениях. Однако службы наподобие Pusher являются гораздо более удобным средством извещения пользователей, если изменения происходят часто и быстро. Учимся использовать службу Pusher с Mobile Services для синхронизации списка Todo, когда изменения происходят в выполняемом экземпляре приложения. Pusher — это облачная служба, которая наряду с Mobile Services позволяет невероятно легко создавать приложения, работающие в режиме реального времени. Вы можете использовать Pusher для быстрого создания интерактивных опросов, комнат чатов, многопользовательских игр, приложений для совместной работы, а также для трансляции актуальных данных и содержимого. И это только малая толика возможностей Pusher! Дополнительные сведения см. на странице http://pusher.com. При выполнении практической работы рассмотрим следующие основные действия для добавления приложения из списка Todo, обеспечивающего возможность совместной работы в режиме реального времени:
Практическая работа построена на основе проекта быстрого запуска Mobile Services. Предварительно необходимо выполнить практическую работу Как начать работать с Mobile Services. Создание учетной записи PusherДля выполнения практической работы сначала необходимо создать учетную запись. Вы можете воспользоваться БЕСПЛАТНЫМ планом подписки Sandbox (Песочница), который прекрасно подходит для обучения. Регистрация в Pusher1. Войдите на портал управления Microsoft Azure. 2. Нажмите кнопку New (Создать) на нижней панели портала управления. 3. Нажмите Store (Магазин). 4. В диалоговом окне Choose an Add-on (Выбор надстроек) выберите Pusher и нажмите стрелку вправо. 5. В диалоговом окне Personalize Add-on (Персонализация надстройки) выберите требуемый план Pusher. 6. Введите имя, позволяющее идентифицировать вашу службу Pusher в параметрах Microsoft Azure, или используйте значение по умолчанию Pusher. Длина имени должна составлять от 1 до 100 символов и содержать только буквенно-цифровые символы, тире, точки и подчеркивания. Имя не должно совпадать ни с одним из имен продуктов Магазина Microsoft Azure, на которые у вас уже есть подписка. 7. Выберите регион, например, West US (Запад США). 8. Нажмите стрелку вправо. 9. На вкладке Review Purchase (Предварительный просмотр покупки) проверьте план и информацию о ценах, а также ознакомьтесь с правилами и условиями. Если вы согласны с правилами и условиями, щелкните значок подтверждения (V). Начинается процесс подготовки вашей учетной записи Pusher. 10. После подтверждения покупки вы будете перенаправлены на панель мониторинга надстроек, где увидите сообщение Purchasing Pusher (Покупка Pusher). Ваша учетная запись Pusher будет готова сразу же, и вы увидите сообщение Successfully purchased Add-On Pusher (Надстройка Pusher приобретена). Учетная запись готова к работе, и вы можете приступать к использованию службы Pusher. Чтобы изменить план подписки или узнать контактные данные Pusher, выберите имя своей службы Pusher и откройте панель мониторинга надстроек. При использовании Pusher вам понадобится указать параметры подключения своего приложения Pusher. Где найти параметры подключения Pusher1. Нажмите Connect Info (Информация о подключении). 2. В диалоговом окне Connection info (Информация о подключении) будут указаны идентификатор приложения, ключ и секретный ключ. Скопируйте эти данные, так как они вам понадобятся для выполнения следующих этапов практической работы. Дополнительные сведения о начале работы с Pusher см. на странице Общие сведения о службе Pusher. Обновление приложенияТеперь, когда у вас есть настроенная учетная запись Pusher, следующим шагом будет изменение кода приложения iOS для работы с новыми функциями. Установка библиотеки libPusherБиблиотека libPusher позволяет получить доступ к Pusher из iOS. 1. Загрузите библиотеку libPusher здесь. 2. Создайте в своем проекте группу под именем libPusher. 3. В инструменте Finder распакуйте загруженный файл .zip, выберите папки libPusher-combined.a и /headers и перетащите их в группу libPusher в своем проекте. 4. Установите флажок Copy items into destination group’s folder (Копировать элементы в папку целевой группы) и нажмите Finish (Готово). Файлы libPusher будут скопированы в ваш проект. 5. В обозревателе проектов перейдите в корневую папку проекта, нажмите Build Phases (Этапы построения), затем нажмите Add Build Phase (Добавить этап построения) и Add Copy Files (Добавить скопированные файлы). 6. Перетащите файл libPusher-combined.a из обозревателя проектов в новый этап построения. 7. Измените значение в поле Destination (Назначение) на Frameworks (Платформы) и установите флажок Copy only when installing (Копировать только при установке). 8. В области Link Binary With Libraries (Связать двоичный файл с библиотеками) добавьте следующие библиотеки:
9. Теперь в области Build Settings (Параметры построения) найдите целевой параметр Other Linker Flags (Другие флаги компоновщика) и добавьте флаг -all_load. Флаг -all_load будет задан для целевого объекта отладочного построения. Библиотека установлена и готова к использованию. Добавление кода в приложение1. В Xcode откройте файл TodoService.h и добавьте следующие объявления метода: Теперь метод TodoService позволяет находить элементы по идентификаторам, а также добавлять и завершать элементы локально, не отправляя явные запросы удаленной службе. 64. Замените существующие методы addItem и completeItem следующим кодом: Обратите внимание, что теперь все элементы добавляются и завершаются (в том числе обновления пользовательского интерфейса) при получении данных о событиях из Pusher, а не при обновлении таблицы данных. 147. Замените прототип **your_app_key** значением ключа приложения, которое вы скопировали в диалоговом окне Connection Info (Информация о подключении) ранее. 163. В файле TodoListController.m найдите метод (void)viewDidLoad и добавьте вызов метода setupPusher, чтобы первые строки выглядели следующим образом: 167. В конце метода tableView:commitEditingStyle:forRowAtIndexPath замените вызов completeItem следующим кодом: Теперь приложение может принимать события из Pusher и соответствующим образом обновлять локальный список Todo. Установка серверных скриптовТеперь нам осталось только настроить ваши серверные скрипты. Вставим скрипт, обрабатывающий вставку элемента в таблицу TodoList или его обновление. 1. Войдите на портал управления Microsoft Azure, нажмите Mobile Services и выберите свою мобильную службу. 2. В портале управления нажмите вкладку Data (Данные), затем выберите таблицуTodoItem. 3. В разделе TodoItem нажмите вкладку Script (Скрипт) и выберите операцию Insert (Вставить). Отображается функция, которая вызывается при вставке элемента в таблицуTodoItem. 39. Замените прототипы в указанном выше скрипте значениями, скопированными ранее из диалогового окна Connection Info (Информация о подключении):
40. Нажмите кнопку Save (Сохранить). Теперь ваш скрипт будет публиковать событие в Pusher при каждой вставке нового элемента в таблицу TodoItem. 41. Выберите Update (Обновить) в раскрывающемся списке Operation (Операция). 42. Замените функцию обновления следующим кодом: 79. Повторите шаг 5 данного скрипта для замены прототипов. 80. Нажмите кнопку Save (Сохранить). Теперь ваш скрипт будет публиковать событие в Pusher при каждом обновлении нового элемента. Проверка приложенияДля проверки вам понадобится выполнить два экземпляра приложения. Вы можете выполнить один экземпляр на устройстве с iOS, а другой — в имитаторе iOS. 1. Подключите устройство с iOS, нажмите кнопку Run (Выполнить) (или сочетание клавиш Command+R) для запуска приложения на устройстве и остановите отладку. Ваше приложение установлено на устройстве. 2. Выполните приложение в имитаторе iOS и одновременно запустите приложение на устройстве с iOS. Теперь у вас есть два выполняемых экземпляра приложения. 3. Добавьте новый элемент Todo в один из экземпляров. Убедитесь, что добавленный элемент появился в другом экземпляре. 4. Пометьте элемент Todo как завершенный в одном экземпляре. Убедитесь, что этот элемент исчез из другого экземпляра. Поздравляем, вы успешно настроили свою мобильную службу для синхронизации со всеми клиентами в режиме реального времени. |