Отправка push-уведомлений с помощью Центров уведомлений Azure и Node.js
Обзор
Важно!
Для работы с этим учебником необходима активная учетная запись Azure. Если ее нет, можно создать бесплатную пробную учетную запись всего за несколько минут с использованием бесплатной пробной версии Azure.
В этом руководстве показано, как отправлять push-уведомления с помощью службы "Центры уведомлений Azure" непосредственно из приложения Node.js.
Описанные сценарии включают отправку push-уведомлений в приложения на следующих платформах:
- Android
- iOS
- Универсальная платформа Windows
- Windows Phone
Центры уведомлений
Центры уведомлений Azure — это простая в использовании масштабируемая многоплатформенная инфраструктура для отправки push-уведомлений на мобильные устройства. Подробные сведения об инфраструктуре служб приведены на странице Центры уведомлений Azure .
Создание приложения Node.js
Первый шаг этого руководства представляет собой создание пустого приложения Node.js. Указания по созданию приложения Node.js см. в статьях Создание и развертывание простого веб-приложения Node.js, Построение и развертывание приложения Node.js в облачной службе Azure (с использованием Windows PowerShell) или Создание и развертывание веб-приложения Node.js в Azure с использованием WebMatrix.
Настройка приложения для использования центров уведомлений
Для использования центров уведомлений Azure необходимо загрузить и использовать пакет Azureдля Node.js, который включает встроенный набор вспомогательных библиотек, взаимодействующих со службами push-уведомлений REST.
Использование диспетчера пакета Node (NPM) для получения пакета
- В интерфейсе командной строки, например PowerShell (Windows), Terminal (Mac) или Bash (Linux), перейдите к папке, в которой вы создали пустое приложение.
- Выполните команду
npm install azure-sb
в командном окне. - Выполнив команду
ls
илиdir
вручную, вы можете убедиться, что папкаnode_modules
создана. - В этой папке найдите пакет azure , который содержит библиотеки для доступа к центру уведомлений.
Примечание
Дополнительные сведения об установке NPM доступны в официальном блоге о NPM.
Импорт модуля
С помощью текстового редактора добавьте в начало файла server.js
приложения следующее:
var azure = require('azure-sb');
Настройка подключения к центру уведомлений Azure
Объект NotificationHubService
позволяет работать с концентраторами уведомлений. Следующий код создает объект NotificationHubService
для центра уведомлений hubname
. Добавьте его в начало файла server.js
после оператора импорта модуля Аzure.
var notificationHubService = azure.createNotificationHubService('hubname','connectionstring');
Получите значение connectionstring
подключения на портале Azure, выполнив следующие действия.
- В области навигации слева щелкните Обзор.
- Выберите Центры уведомлений, затем щелкните центр, который хотите использовать. Если вам нужна помощь в создании центра уведомлений, обратитесь к учебнику по началу работы с центрами уведомлений для Windows.
- Выберите Параметры.
- Щелкните Политики доступа. Вы увидите строки подключения как для общего, так и для полного доступа.
Примечание
Вы также можете получить строку подключения с помощью командлета Get-AzureSbNamespace
в Azure PowerShell или команды azure sb namespace show
в классическом интерфейсе командной строки Azure.
Общая архитектура
Объект NotificationHubService
предоставляет следующие экземпляры объекта для отправки push-уведомлений определенным устройствам и приложениям.
-
Android — используйте объект
GcmService
, доступный вnotificationHubService.gcm
; -
iOS — используйте объект
ApnsService
, доступный вnotificationHubService.apns
; -
Windows Phone — используйте объект
MpnsService
, доступный вnotificationHubService.mpns
; -
универсальная платформа Windows — используйте объект
WnsService
, доступный вnotificationHubService.wns
.
Примечание
Служба push-уведомлений (Майкрософт) (MPNS) устарела и больше не поддерживается.
Практическое руководство. Отправка push-уведомлений в приложения Android
Объект GcmService
предоставляет метод send
, который может использоваться для отправки push-уведомлений в приложения Android. Метод send
принимает следующие параметры:
- Tags — идентификатор тега. Если тег отсутствует, уведомление отправляется всем клиентам.
- Payload — полезные данные JSON или строковые полезные данные сообщения.
- Callback — функция обратного вызова.
Дополнительные сведения о формате полезных данных см. в документации по полезным данным.
В следующем коде для отправки push-уведомления всем зарегистрированным клиентам используется экземпляр GcmService
, предоставляемый NotificationHubService
.
var payload = {
data: {
message: 'Hello!'
}
};
notificationHubService.gcm.send(null, payload, function(error){
if(!error){
//notification sent
}
});
Практическое руководство. Отправка push-уведомлений в приложения iOS
Как и в случае с описанными выше приложениями Android, объект ApnsService
предоставляет метод send
, который может использоваться для отправки push-уведомлений в приложения iOS. Метод send
принимает следующие параметры:
- Tags — идентификатор тега. Если тег отсутствует, уведомление отправляется всем клиентам.
- Payload — полезные данные JSON или строковые полезные данные сообщения.
- Callback — функция обратного вызова.
Дополнительные сведения о формате полезных данных см. в разделе Содержимое уведомленийдокументации по UserNotification.
В следующем коде используется экземпляр ApnsService
, предоставляемый NotificationHubService
, для отправки оповещений всем клиентам:
var payload={
alert: 'Hello!'
};
notificationHubService.apns.send(null, payload, function(error){
if(!error){
// notification sent
}
});
Практическое руководство. Отправка push-уведомлений в приложения Windows Phone
Объект MpnsService
предоставляет метод send
, который может использоваться для отправки push-уведомлений в приложения Windows Phone. Метод send
принимает следующие параметры:
- Tags — идентификатор тега. Если тег отсутствует, уведомление отправляется всем клиентам.
- Payload — полезные данные XML сообщения.
-
TargetName -
toast
— уведомлений во всплывающем окне.token
для уведомлений на плитке. - NotificationClass — приоритет уведомления. Допустимые значения см. в разделе HTTP Header Elements (Элементы заголовка HTTP) документа Pushing Notifications from a Server (Windows Phone) (Push-уведомления от сервера (Windows Phone)).
- Options — необязательные заголовки запроса.
- Callback — функция обратного вызова.
Перечень допустимых значений TargetName
, NotificationClass
и параметров заголовка см. на странице XNA Game Studio 4.0 Refresh.
В следующем примере кода для отправки всплывающего push-уведомления используется экземпляр MpnsService
, предоставляемый NotificationHubService
.
var payload = '<?xml version="1.0" encoding="utf-8"?><wp:Notification xmlns:wp="WPNotification"><wp:Toast><wp:Text1>string</wp:Text1><wp:Text2>string</wp:Text2></wp:Toast></wp:Notification>';
notificationHubService.mpns.send(null, payload, 'toast', 22, function(error){
if(!error){
//notification sent
}
});
Практическое руководство. Отправка push-уведомлений в приложения универсальной платформы Windows (UWP)
Объект WnsService
предоставляет метод send
, который может использоваться для отправки push-уведомлений в приложения универсальной платформы Windows. Метод send
принимает следующие параметры:
- Tags — идентификатор тега. Если тег отсутствует, уведомление отправляется всем зарегистрированным клиентам.
- Payload — полезные данные XML сообщения.
- Type — тип уведомления.
- Options — необязательные заголовки запроса.
- Callback — функция обратного вызова.
Список допустимых типов и заголовков запроса см. в разделе Заголовки запроса и ответа службы push-уведомлений (приложения среды выполнения Windows).
В следующем коде для отправки всплывающего push-уведомления в приложение UWP используется экземпляр WnsService
, предоставляемый NotificationHubService
.
var payload = '<toast><visual><binding template="ToastText01"><text id="1">Hello!</text></binding></visual></toast>';
notificationHubService.wns.send(null, payload , 'wns/toast', function(error){
if(!error){
// notification sent
}
});
Next Steps
Примеры фрагментов выше позволяют легко создать инфраструктуру службы для отправки push-уведомлений на широкий спектр устройств. Теперь, когда вы познакомились с основами использования Центров уведомлений с Node.js, используйте приведенные ниже ссылки, чтобы получить дополнительные сведения о том, как можно дальше расширить эти возможности.
- См. статью Общие сведения о Центрах уведомлений в справочнике MSDN.
- Дополнительные примеры и сведения о реализации доступны в репозитории пакетов SDK Azure для Node на сайте GitHub.