突破极限–如何使用AeroGear Unified Push for Java EE和Node.js

在2014年底的AeroGear队宣布红帽的JBoss统一推送服务器的可用性xPaaS 。 让我们仔细看看!

总览

统一推送服务器允许开发人员将本地推送消息发送到Apple的推送通知服务(APNS)和Google的云消息传递(GCM)。 它具有内置的管理控制台,使开发人员可以轻松地为任何移动开发环境创建和管理与应用程序的推送相关的方面。 包括客户端SDK(iOS,Android和Cordova)以及具有可用Java发送器库的基于REST的发送器服务。 下图显示了Unified Push Server如何使应用程序向Apple的Push Notification Service(APNS)和Google的Cloud Messaging(GCM)发送本机推送消息:

images_solutions_unifiedpush_overview-image-1

建筑

xPaaS产品部署在托管EAP容器中,而服务器本身基于标准的Java EE API,例如:

  • JAX-RS
  • EJB
  • CDI
  • JPA

另一个关键组件是Keycloak ,用于用户管理和身份验证。 Unified Push Server的核心是其公共RESTful端点 。 这些服务是所有移动设备以及第三方业务应用程序的条目,当它们想要发布要发送到已在服务器上注册的移动设备的推送通知时。

后端整合

基于JAX-RS标准,使与任何后端平台的集成变得非常容易。 它只需要说HTTP ...

Java EE

该项目具有Java库 ,可从任何基于Java的后端发送推送通知请求。 流利的构建器API用于设置与所需的Unified Push Server的集成,借助CDI,我们可以将其提取到一个非常简单的工厂中:

@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类中,该类负责向统一推送服务器发送推送请求:

@Inject
private PushSender sender;
...
public void sendPushNotificationRequest() {
   ...
   UnifiedMessage unifiedMessage....;
   sender.send(unifiedMessage);
}

UnifiedMessage的API也利用了构建器模式:

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库 。 下面是一个简短的示例,说明如何从基于Node.js的后端发送推送通知:

// 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 );
});

下一步是什么 ?

xPaaS上的Unified Push Server目前支持Android和iOS,但AeroGear团队正在寻求为更多移动平台增强服务。 社区项目当前支持以下平台:

  • 安卓系统
  • Chrome打包应用
  • 的iOS
  • SimplePush / Firefox操作系统
  • 视窗

计划增加对Safari浏览器和Amazon的设备消息传递(ADM)的支持

入门要查看运行中的Unified Push Server,请查看以下视频:

xPaaS版本带有针对Android,iOS和Apache Cordova客户端的不同演示,以及基于Java EE的后端演示。 您可以在此处找到下载内容

可以在Unified Push主页上找到更多信息。

您可以通过IRC或电子邮件与AeroGer团队联系。

玩得开心,享受!

翻译自: https://www.javacodegeeks.com/2015/01/pushing-the-limits-howto-use-aerogear-unified-push-for-java-ee-and-node-js.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值