突破极限–如何将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,一经查实,立即删除!

相关文章

sqlserver 中事务与错误机制的处理

成功返回1并提交事务,错误返回0并回滚事务 BEGIN try begin tran --其中userName为varchar类型,数据库中该字段存在不为int类型的数据,必然导致错误 update WebOA_User_t SET UserNameUserName where UserName1 select 1 commit tran end try begin catch select 0 r…

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…

关于Firefox在Win8下界面显示错乱的解决方法

最近又把Windows8安装上,由于平常做前端开发用的最多的还是Firefox,因此在家的机器上也安装上Firefox,但使用中发现Firefox界面老是错误,特别是那种乱套的颜色,不得其解,查看设置发现默认启用了硬件加速&am…

react ant design路由配置

最初的时候,只使用了antd中的menu,header和footer都是自己写的组件,在写路由时,总是报如下错误: 相关的路由配置如下: 在网上查的说是组件未暴露出去或者是return 这一行必须有个括号或者标签,我…

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

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

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

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

VUE 全选

<div id"vue_det"> <p>全选:</p> <input type"checkbox" id"checkbox" v-model"checked" change"changAllChecked"/> <label for"checkbox"> {{checked}} <…

RabbitMQ –使用Spring集成Java DSL串行处理消息

如果您曾经需要使用RabbitMQ来串行处理消息&#xff0c;并且有一群监听器来处理消息&#xff0c;那么我所看到的最好方法是在监听器上使用“独占消费者”标志&#xff0c;每个监听器上有1个线程来处理消息。 专用使用者标志可确保只有1个使用者可以从特定队列中读取消息&#…

添加删除约束脚本 ::fn_get_sql

添加约束&#xff1a;alter table table1 add constraint pk_name primary key (name) --添加主健约束,名称作为主健&#xff1b; alter table table1 add constraint pk_name unique (name) --添加唯一约束,…

jquery 实现 点击把数据移动右侧 点击再次移回到左侧

2018年第一发 希望新的一年和大家一下学习更多知识 JS&#xff1a;//把数据左边挪到了右边&#xff0c;再从右边移动回来function moveOption(e1, e2){ $("#" e1 " option").each(function(){ if($(this).is(:selected)){ var oVal…

企业Java中事务隔离级别的初学者指南

介绍 基于ACID事务属性的关系数据库强一致性模型。 在本文中&#xff0c;我们将阐明对资源本地事务和JTA事务使用不同的事务隔离级别和各种配置模式的背后原因。 隔离和一致性 在关系数据库系统中&#xff0c;原子性和持久性是严格的属性&#xff0c;而一致性和隔离性或多或少…

点击左侧跳到右侧

效果图 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…

好的微服务架构=企业服务总线(ESB)的灭亡?

这些天&#xff0c;似乎每个人都在谈论微服务。 您可以在数百篇文章和博客文章中读到很多有关该主题的文章&#xff0c;但是我建议的出发点是Martin Fowler的这篇文章 &#xff0c; 该文章引发了有关这种新建筑概念的大量讨论。 本文介绍了创建良好的微服务体系结构所面临的挑战…

移动端UC /QQ 浏览器的部分私有Meta 属性

<meta name"format-detection" content "telephoneno"/> 格式检测 禁止识别我们页面中的数字&#xff0c;防止把其当作电话识别&#xff0c;emailno 禁止识别邮箱 IOS设备对META的私有属性 <meta name"apple-mobile-web-app-capable&qu…

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

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

书评:精通Lambda:多核世界中的Java编程

从版本8开始&#xff0c;λ编程&#xff08;lambda编程&#xff09;终于在Java世界中引入。此功能将在很大程度上改变Java开发人员的编程方式以及针对样板代码的新“武器”。 Java 8通过引入新的Stream API&#xff0c;大部分已将函数式编程应用在Collections API中。 此外&…

js框架

PS&#xff1a;https://www.cnblogs.com/zx0303/p/js-liuxingkuangjia.html 下边这张表简述了js目前的流行框架的优点: AngularJ.js 由google开发&#xff0c;2009年首次发布 很流行的前端框架使用Angular.js创建第一个UI&#xff0c;成本很…