在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)发送本机推送消息:
建筑
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