Статьи

Расширение границ — как использовать AeroGear Unified Push для Java EE и Node.js

В конце 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):

images_solutions_unifiedpush_overview-изображение-1

Архитектура

Предложение 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() {
  PushSender defaultPushSender = DefaultPushSender.withRootServerURL("http://localhost:8080/ag-push")
    .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 = {
        url: "http://localhost:8080/ag-push",
        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 или по электронной почте .

Веселись и наслаждайся!