В конце 2014 года команда AeroGear объявила о доступности Red Hat JBoss Unified Push Server на xPaaS . Давайте внимательнее посмотрим!
обзор
Унифицированный push-сервер позволяет разработчикам отправлять собственные push-сообщения в службу push-уведомлений Apple (APNS) и Google Cloud Messaging (GCM). Он имеет встроенную консоль администрирования, которая позволяет разработчикам легко создавать и управлять аспектами push-приложений в любой среде мобильной разработки. Включает клиентские SDK (iOS, Android и Cordova) и службу отправителей на основе REST с доступной библиотекой отправителей Java. На следующем рисунке показано, как Unified Push Server позволяет приложениям отправлять собственные push-сообщения в службу push-уведомлений Apple (APNS) и Google Cloud Messaging (GCM):
Архитектура
Предложение xPaaS развертывается в управляемом контейнере EAP, а сам сервер основан на стандартных API Java EE, таких как:
- JAX-RS
- EJB
- КДИ
- JPA
Другим важным компонентом является Keycloak , который используется для управления пользователями и аутентификации. Сердцем Unified Push Server являются его общедоступные конечные точки RESTful . Эти сервисы предназначены для всех мобильных устройств, а также для сторонних бизнес-приложений, когда они хотят выпустить push-уведомление для доставки на мобильные устройства, зарегистрированные на сервере.
Бэкэнд-интеграция
Основываясь на стандарте JAX-RS, очень легко интегрируется с любой серверной платформой. Это просто нужно говорить по HTTP …
Java EE
Проект имеет библиотеку Java для отправки запросов push-уведомлений из любого бэкэнда на основе Java. API-интерфейс Fluent Builder используется для настройки интеграции с желаемым сервером Unified Push, с помощью CDI мы можем извлечь это в очень простую фабрику:
|
1
2
3
4
5
6
7
|
@Producespublic PushSender setup() { .pushApplicationId("c7fc6525-5506-4ca9-9cf1-55cc261ddb9c") .masterSecret("8b2f43a9-23c8-44fe-bee9-d6b0af9e316b") .build();} |
Затем нам нужно внедрить PushSender в класс Java, который отвечает за отправку push-запроса на Unified Push Server:
|
1
2
3
4
5
6
7
8
|
@Injectprivate PushSender sender;...public void sendPushNotificationRequest() { ... UnifiedMessage unifiedMessage....; sender.send(unifiedMessage);} |
API для UnifiedMessage также использует шаблон компоновщика:
|
1
2
3
4
5
6
|
UnifiedMessage unifiedMessage = UnifiedMessage.withMessage() .alert("Hello from Java Sender API!") .sound("default") .userData("foo-key", "foo-value") ... .build(); |
Node.js
Быть спокойным сервером не ограничивает интеграцию с традиционными платформами, такими как Java EE. AeroGear также имеет библиотеку Node.js. Ниже приведен краткий пример отправки push-уведомлений из серверной части на основе Node.js.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
|
// setup the integration with the desired Unified Push Servervar agSender = require( "unifiedpush-node-sender" ), settings = { applicationId: "c7fc6525-5506-4ca9-9cf1-55cc261ddb9c", masterSecret: "8b2f43a9-23c8-44fe-bee9-d6b0af9e316b" };// build the push notification payload:message = { alert: "Hello from Node.js Sender API!", sound: "default", userData: { foo-key: "foo-value" }};// send it to the server:agSender.Sender( settings ).send( message, options ).on( "success", function( response ) { console.log( "success called", response );}); |
Что дальше ?
На данный момент Unified Push Server на xPaaS поддерживает Android и iOS, но команда AeroGear стремится улучшить сервис для более мобильных платформ. Проект сообщества в настоящее время поддерживает следующие платформы:
- Android
- Chrome Packaged Apps
- IOS
- SimplePush / Firefox OS
- Windows
Есть планы добавить поддержку браузера Safari и Amazon Device Messaging (ADM) .
Начало работы Чтобы увидеть единый Push-сервер в действии, посмотрите видео ниже:
Релиз xPaaS включает в себя различные демонстрационные версии для клиентов Android, iOS и Apache Cordova, а также демонстрационную программу на основе Java EE. Вы можете найти загрузки здесь .
Более подробную информацию можно найти на домашней странице Unified Push .
Вы можете связаться с командой AeroGer через IRC или по электронной почте .
Веселись и наслаждайся!
| Ссылка: | Расширение границ — как использовать AeroGear Unified Push для Java EE и Node.js от нашего партнера по JCG Маркуса Эйзела ( Markus Eisele) из блога « Разработка программного обеспечения для предприятий с использованием Java» . |
