推送

Pushlet定点推送消息<一>

我只是一个虾纸丫 提交于 2020-03-16 11:02:33
上一篇日志利用推送源周期性地向订阅了某一事件的所有网页端推送信息,但怎么实现向特定的某一个用户推送信息呢,想象一个网络聊天室,怎么向单独的一个好友私聊呢。问题的关键就是那个SessionID,Pushlet默认是用java.rmi.server.UID参数的随机字符串作为会话标志,这就造成我们没法跟一个特点的用户对应上,也就是说客户必须在joinListen的时候提供一个他的ID,就像登陆qq时,输入用户名一样。 好了,这里就列出怎么修改相关代码,实现上述功能。 同样,首先用MyEclipse新建一个web工程,我这里命名为PushletTest2。不同的是,我们不引用pushlet.jar包了,因为我们要更改源码,在下载pushlet的时候里面就包含源代码了,最外层是nl包,加入我的工程的src里。好了,加进去之后会报错,将log4j.jar加入引用就好了。。之后,同样别忘了把pushlet.properties和sources.properties加入WebRoot/WEN-INF下。工程结构如下: FirPush.java是自己写的一个触发推送动作的类,它是一个servlet,请求该servlet就触发向特定的用户推送信息的动作(当然,怎么触发推送动作还有很多种形式)。 web.xml代码如下: Xml代码 < span style = "font-size: x-small

HTML5 Server-Sent Events With Java Servlets Exampl

牧云@^-^@ 提交于 2020-01-07 07:32:44
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Since the dawn of modern web applications, push notifications have gained significant traction in industry. Instead of pooling data from server it has now become common that server should notify client. Ajax is so pervasive these days it is almost seen on every web page we visit. This is all good if you want to refresh a part of page every few seconds. But things get ugly if you want tens or hundreds of requests a second. Pooling webserver is too expensive in such cases. With that in mind HTML5 has introduced a nifty cool feature “Server-Sent Events” . 1.

业内的一些可参考的资料搜集-58同城-推送

扶醉桌前 提交于 2019-12-22 14:49:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 首先,对于任何一个架构来说,都是不断演进的,一开始都不会是一个胖子。 58同城高性能移动Push推送平台架构演进之路 http://mp.weixin.qq.com/s?__biz=MzA5NTkwMzkwNQ==&mid=402609571&idx=1&sn=f912868fc9e0bf4383b0b47fa9566069 来源: oschina 链接: https://my.oschina.net/u/1382024/blog/634372

ios推送消息的基本原理

情到浓时终转凉″ 提交于 2019-12-10 14:20:26
Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider。 APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,是苹果的服务器。 上图可以分为三个阶段。 第一阶段:.net应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。 第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发到iPhone。 第三阶段:iPhone把发来的消息传递给相应的应用程序, 并且按照设定弹出Push通知。 从上图我们可以看到。 1、首先是应用程序注册消息推送。 2、 IOS跟APNS Server要deviceToken。应用程序接受deviceToken。 3、应用程序将deviceToken发送给PUSH服务端程序。 4、 服务端程序向APNS服务发送消息。 5、APNS服务将消息发送给iPhone应用程序。 无论是iPhone客户端跟APNS,还是Provider和APNS都需要通过证书进行连接的。下面我介绍一下几种用到的证书。 几种证书: 一、*.certSigningRequest文件 1、生成Certificate Signing Request (CSR)

JAVA Websocket消息推送---GoEasy

老子叫甜甜 提交于 2019-12-10 03:51:14
Goeasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送!个人感觉goeasy推送更稳定,推送 速度快,代码简单易懂上手快 浏览器兼容性:GoEasy推送 支持websocket 和polling两种连接方式,从而可以支持IE6及其以上的所有版本,同时还支持其它浏览器诸如Firefox, Chrome, Safari 等等。 支 持不同的开发语言: GoEasy推送 提供了Restful API接口,无论你的后台程序用的是哪种语言都可以通过RestfulAPI来实现后台实时推送。如:Java, PHP, C#, Ruby, Python, C, C++, ASP.NET, Node.js... 支持后台及前台推送: 后台用Restful API, 前台用goeasy.js;运用十分简单! 推送的原理:GoEasy的实现原理很简单,就是推送消息的一端只负责推送,而需要接收的页面需要预先订阅。订阅什么呢?订阅channel。往 某个channel上推送消息,客户端就订阅相同的channel,这样就可以确保准确接收。通过channel我们可以自己指定哪些页面或哪些用户可以 接收到从这个channel上推送出来的消息。 JAVA Websocket消息推送 下面我介绍一下使用GoEasy的步骤: 1. 你需要到goeasy官网上注册一个账号,并创建一个应用

工作中有可能用到的开源库和第三方组件

▼魔方 西西 提交于 2019-12-05 15:38:53
项目名称 项目信息 AFNetworking 网络请求组件 FMDB 本地数据库组件 SDWebImage 多个缩略图缓存组件 UICKeyChainStore 存放用户账号密码组件 Reachability 监测网络状态 DateTools 友好化时间 MBProgressHUD 一款提示框第三方库 MWPhotoBrowser 一款简单的 iOS 照片浏览控件 CTAssetsPickerController 一个选择器组件, 支持从用户的相片库选择多张照片和视频。 QBPopupMenu 无需使用图片文件的 iOS 弹出式菜单 UAAppReviewManager 一个能够让你方便地将提醒用户评分的功能加入 App 的工具 Mantle 主要用来将 JSON 数据模型化为 Model 对象 MTLFMDBAdapter Mantle 和 FMDB 的转换工具 FMDBMigrationManager 支持 iOS SQLite 数据库迁移 Bugsnag 集成 Bugsnag 到应用中 GVUserDefaults 对 NSUserDefaults 进行了封装, 方便的进行本地化存储操作 FCCurrentLocationGeocoder 对用户当前地理位置进行正向地址编码和反向地址编码 AFSwipeToHide 页面滚动时隐藏工具栏 BaiduTranslate

基于Android移动平台僵尸网络模拟工具设计与实现

梦想与她 提交于 2019-12-05 01:47:43
移动端:基于 Android 系统开发的应用,表层应用是基于 baiduMap 路线规划 app 服务端:基于 python web 开发框架 django 实现。 通信信道:基于第三方 SDK Jpush 推送消息 + 自己一套加密系统 推送原理: 1. 轮询方式( pull ):实现消息队列 轮询频率问题 2.SMS ( push ):拦截消息 解析意图 成本高 3. 持久链接( push ):解决轮询性能问题 XMPP 协议: 基于 XML 核心部分:在网络上分片发布 XML 的流协议 Android 客户端要点: 1. 传递信息 ( 1 )传递信息是指僵尸应用可以获取移动终端的基本信息,如 : 位置、服务商信息、号码以及个人基本信息等; ( 2 )发送心跳包,服务端通过对发来的包的解析来判断在线主机以及状态。 2. 解析命令 Web 服务器通过会通过相关信道对部分僵尸客户端发送命令,客户端解析服务端发送的数据转化成相应的指令。 3. 执行命令 根据服务端发送的指令,指向相关的操作。 服务端: 1. 连接过程: 连接过程就是 Web 服务器和 Android 客户端之间所建立的一种连接,以保证服务端可以监控到僵尸手机是不是在线。 2. 命令推送过程: 当攻击者想执行某个操作时候,通过向 Android 手机推送命令的过程。 3. 应答过程: 应答过程就是当命令推送过程之后,

Android 平台上长连接的实现

感情迁移 提交于 2019-12-04 01:15:22
Android 平台上长连接的实现 为了不让 NAT 表失效,我们需要定时的发心跳,以刷新 NAT 表项,避免被淘汰。 Android 上定时运行任务常用的方法有2种,一种方法用 Timer,另一种是AlarmManager。 Timer Android 的 Timer 类可以用来计划需要循环执行的任务,Timer 的问题是它需要用 WakeLock 让 CPU 保持唤醒状态,这样会大量消耗手机电量,大大减短手机待机时间。这种方式不能满足我们的需求。 AlarmManager AlarmManager 是 Android 系统封装的用于管理 RTC 的模块,RTC (Real Time Clock) 是一个独立的硬件时钟,可以在 CPU 休眠时正常运行,在预设的时间到达时,通过中断唤醒 CPU。 这意味着,如果我们用 AlarmManager 来定时执行任务,CPU 可以正常的休眠,只有在需要运行任务时醒来一段很短的时间。 Android系统提供了AlarmManager类来管理闹钟定时提醒任务。通过AlarmManager实现定时提醒及定时循环提醒。那么,AlarmManager类可以应用到以下场景: 1、定时循环启动组件(Component,如Activity、BroadcastReceiver),这样能替代在后台启动Service进行定时提醒任务 2、实现闹钟的按小时、天

通过 Push 来提高移动应用的活跃度

北城余情 提交于 2019-12-03 18:57:12
开发移动App 的童鞋,都会有这样一个问题:应用发出去了,就不可控了。用户手机上一堆的应用,有可能用户根本就忘记了我这个应用的存在,不怎么去使用,我有没有什么办法?我发布了新版本相信可以更吸引用户,但他也不知道啊;我想做个活动来激活用户更多地使用我的应用,怎么做到呢? 提高活跃度的根本当然还在于产品本身,这一点是毋庸置疑的。正如有牛人总结说: 互联网企业产品是唯一的核心 。 想必很多人了解,产品之外,运营也是非常重要的部分,甚至是更重要的部分。最近著名的移动应用统计供应商 Flurry 发表了一篇文章: 移动应用经济的数学模型 - 盈利模式矩阵 。这篇文明开篇就谈到:在新的移动应用经济中,不管一个公司最初有多成功, 最后的胜者取决于用户参与度和维系用户的能力。获得用户之后,真正的战斗才刚打响,那就是留住用户,并通过他们最终获利。 在“移动优先”的全新世界里,参与度就是新战场。 而在移动App里集成 Push能力,则赋予了开发者对移动App的运营能力,让开发者有更多的机会来与用户交互,让用户更多地参与进来,留住用户,并最终提高获利。 Push 怎么样提高应用的活跃度 国外为很多大 IT 公司包括 Oracle, Intel, Saleforce, USA Today 在内都使用的第三方推送服务 Urban Airship ,针对大量应用做了一个统计,如下图: 上图表明

iphone推送java代码实现

☆樱花仙子☆ 提交于 2019-12-01 11:46:23
最近在研究iphone推送的java实现,看过发现原来很简单,以下是我根据网上源码修改的程序,具体里面的证书和手机token的生产就不解释了,本人没有搞过iphone,有需要的可以再网上搜索以下,很多也很简单。 代码有不对的地方,多谢大家指出 帮忙改进。 /************************************************ 测试推送服务器地址:gateway.sandbox.push.apple.com /2195 产品推送服务器地址:gateway.push.apple.com / 2195 需要javaPNS_2.2.jar包 ***************************************************/ /** *这是一个比较简单的推送方法, * apple的推送方法 * @param tokens iphone手机获取的token * @param path 这里是一个.p12格式的文件路径,需要去apple官网申请一个 * @param password p12的密码 此处注意导出的证书密码不能为空因为空密码会报错 * @param message 推送消息的内容 * @param count 应用图标上小红圈上的数值 * @param sendCount 单发还是群发 true:单发 false:群发 */