В конце 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
|
@Produces public 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
|
@Inject private 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 Server var 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» . |