突破极限–如何将AeroGear Unified Push用于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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361125.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js 获取json数组里面数组的长度

作为一个前端页面开发者第一次处理json数据,遇到了‘js 获取json数组里面数组的长度’?竟然不知道 json没有.length属性(真是要嘲讽下自己),少壮不努力老大徒伤悲啊!以前都是去寻求男朋友帮助,但…

针对WildFly和EAP运行Java Mission Control和Flight Recorder

Java Mission Control (JMC)使您可以监视和管理Java应用程序,而无需引入通常与这些类型的工具相关的性能开销。 它使用为正常的JVM动态优化而收集的数据,从而形成了一种非常轻量级的方法来观察和分析应用程序代码中的问题。 JMC由…

C#堆栈和堆的讲解

OS和CLR通常将用于容纳数据的内存划分为两个独立的区域,每个区域都采用截然不同的方式来管理:堆栈(Stack)和堆(heap)。(1) 调用一个方法时,它的参数以及它的局部变…

jQuery中的常用内容总结(一)

jQuery中的常用内容总结(一) 前言 不好意思(✿◠‿◠),由于回家看病以及处理一些其它事情耽搁了,不然这篇博客本该上上周或者上周写的;同时闲谈几句:在这里建议各位开发的童鞋,如果有疾病尽快治疗,不要拖&a…

线程魔术技巧:Java线程可以做的5件事

Java线程最鲜为人知的事实和用例是什么? 有些人喜欢爬山,有些人喜欢跳伞。 我,我喜欢Java。 我喜欢它的一件事是,您永不停止学习。 您每天使用的工具通常可以向您展示全新的方面,以及您还没有机会看到的方法和有趣的用…

强制删除tfs未迁入项的两个方法。

方法1: 打开Vs2008的命令提示: 查看用户的工作区: 输入: Tf workspaces /owner:所有者或* /server:服务器名称或IP ex: tf workspaces /owner:stcct(所有者) /server:203.156.1.100(Ip地址) 删除用户的未迁入项: 输…

点击左侧跳到右侧

效果图 JS部分 function moveOption(e1, e2){ try{ for(var i0;i<e1.options.length;i ){ if(e1.options[i].selected){ var e e1.options[i]; e2.options.add(new Option(e.text, e.value)); e1.remove(i); iii-1 } } } catch(e){}} HTML以及CSS部分 <for…

IDC关于使用JBoss Fuse的商业价值的报告(与Apache Camel一起使用)

这只是一篇博客文章&#xff0c;具有更多的商业性质&#xff0c;但是您不能一无所有。 实际上&#xff0c;这也是使Apache Camel保持活力并保持良好状态的原因&#xff0c;这还归功于其商业上的成功。 希望从JBoss Fuse之类的产品中寻找有关在商业上使用Apache Camel的附加值的…

Spring-Quartz (一)

摘自&#xff1a; http://www.blogjava.net/Jay2009/archive/2009/03/25/259176.htmlSpring为创建Quartz的Scheduler、Trigger和JobDetail提供了便利的FactoryBean类&#xff0c;以便能够在Spring 容器中享受注入的好处。此外Spring还提供了一些便利工具类直接将Spring中的Bean…

在Java EE 7上骑骆驼–带有Swagger文档的REST服务

骆驼开箱即用。 Swagger集成就是其中之一。 不幸的是&#xff0c;大多数已经存在的功能都严重依赖于Spring。 但这并不能阻止我们在普通的Java EE 7应用程序中使用它们&#xff0c;因为有时它只是服务器的轻量级变体。 但我不想再对此进行讨论。 相反&#xff0c;我认为在所有情…

怎么隐藏滚动条又能滚动

1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <title>滚动条隐藏</title>6 <style>7 body, ul, li {8 margin: 0;9 padding: 0; 10 …

Eclipse to android

JDK Eclipse Android SDK ADT 1 必须软件 Java JDK SE 1.6 (jdk-7u9-windows-i586.exe) Eclipse (Eclipse IDE for Java Developers) Google Android SDK (android-sdk_r15-windows.zip) ADT (ADT-15.0.0.zip) 如果找不到可参考&#xff1a; http://blog.csdn.net/zhenyong…

canvas画饼图

<style> body { background: black; text-align: center; } #cans { background: white; } </style> <script> function disToRad(n){//将度数表示弧度计算的方法 return n*Math.PI/180;//π用PI表示&#xff0c;π180&#xff0c;所以1PI/180 } w…

Web设计趋势分析

本文译自网站设计公司weavora.com&#xff0c;介绍了在他们眼里 8 个 Web 设计趋势&#xff1a;单页面、用照片做背景、色块设计、超大号的图片、聚焦简洁、响应式设计、视差滚动、强调字体&#xff0c;每个趋势后面都附了数个案例&#xff0c;相信对网站设计师会有一定的参考价…

使用Jasmine,Spock和Nashorn测试JVM服务器端JavaScript

JavaScript使用不仅限于浏览器中的客户端代码或NodeJS支持的服务器端代码。 许多基于JVM的项目都将其用作内部脚本语言。 测试这种功能既不简单也不标准。 在本文中&#xff0c;我打算演示一种使用成熟的工具&#xff08;例如Jasmine &#xff0c; Spock和Nashorn在服务器端JVM…

带有Hibernate OGM的NoSQL –第一部分:持久化您的第一个实体

Hibernate OGM的第一个最终版本已经发布 &#xff0c;团队从发布狂潮中恢复了一些。 因此&#xff0c;他们考虑建立一系列教程式博客&#xff0c;使您有机会轻松地从Hibernate OGM重新开始。 感谢Gunnar Morling&#xff08; gunnarmorling &#xff09;创建了本教程。 介绍 不…

为自己写程序之JavsScript代码段测试器

JavaScript的测试&#xff0c;通常是在Firefox的firebug插件中测试的。不过有时只是测试几行代码都要写一个html&#xff0c;再打开浏览器测试运行结果&#xff0c;感觉并不是很方便。 今天花了点时间做了一个简易的JS片段测试器。其实这主要是看了IronJs开源项目以后&#xff…

sizeof和strlen的区别(其中涉及NUL的讲解)

本文是自己结合平时所学的知识&#xff0c;对sizeof和strlen的区别进行了总结&#xff0c;如有不对的地方还请批评指证&#xff0c;共同进步&#xff01;&#xff01;&#xff01; 一、从C语言的定义上来讲 1、sizeof是关键字&#xff0c;而strlen是包含在string.h头文件中的一…

使用WildFly和Java EE 7映像与Docker提供者一起流浪

什么是无业游民&#xff1f; Vagrant是创建虚拟开发环境的简化且可移植的方式。 它可与多种虚拟化软件一起使用&#xff0c;例如VirtualBox&#xff0c;VMWare&#xff0c;AWS等。 它还可以与多种配置软件一起使用&#xff0c;例如Ansible&#xff0c;Chef&#xff0c;Puppet或…

休眠锁定模式–乐观锁定模式如何工作

显式乐观锁定 在上一篇文章中 &#xff0c;我介绍了Java持久性锁定的基本概念。 隐式锁定机制可防止丢失更新 &#xff0c;它适用于我们可以主动修改的实体。 虽然隐式乐观锁定是一种广泛使用的技术&#xff0c;但是很少有人了解显式乐观锁定模式的内部工作原理。 当锁定的实…