java推送Comet_使用Comet4j实现消息推送
public class NewMsgCollector extends ConnectListener implements ServletContextListener {
private static final String CHANNEL = "hello";
public void contextInitialized(ServletContextEvent contextEvent) {
//注册应用的channel
CometContext context = CometContext.getInstance();
context.registChannel(CHANNEL);
//添加监听器
CometEngine engine = CometContext.getInstance().getEngine();
engine.addConnectListener(this);
}
public void contextDestroyed(ServletContextEvent contextEvent) {}
public boolean handleEvent(ConnectEvent connEvent) {
final CometConnection conn = connEvent.getConn();
//建立连接和用户的关系
doCache(conn);
final String connId = conn.getId();
/*模拟业务逻辑*/
Timer timer = new Timer(true);
TimerTask task = new TimerTask() {
public void run() {
CometEngine engine = CometContext.getInstance().getEngine();
//推送到所有客户端
//engine.sendToAll("hello", connId + " - you have " + ((int)(Math.random() * 9) + 1) + " new message
");
if (CacheManager.getContent(connId).isExpired()) {
doCache(conn);
}
if (simulateService(String.valueOf(CacheManager.getContent(connId).getValue()))) {
//推送到指定的客户端
engine.sendTo(CHANNEL, engine.getConnection(connId), CacheManager.getContent(connId).getValue()
+ " - you have " + ((int) (Math.random() * 9) + 1) + " new message
");
}
}
};
timer.schedule(task, 10000, (1000 * 5));
return true;
}
private void doCache(final CometConnection conn) {
Object userId = conn.getRequest().getSession().getAttribute("currentUserId");
if (userId != null) {
CacheManager.putContent(conn.getId(), String.valueOf(userId), CacheConstant.EXPIRE_AFTER_ONE_HOUR);
}
}
/**
* 模拟业务
* 返回true,false
* true即表示需要推送消息,false即不需要推送
*/
private boolean simulateService(String id) {
int flag = (int) Math.round(Math.random());
if (flag == 0) {
System.out.println(id + " - no messge...");
return false;
}
System.out.println(id + " - messge is coming...");
return true;
}
}
java推送Comet_使用Comet4j实现消息推送相关推荐
- 小程序消息推送(含源码)java实现小程序推送,springboot实现微信消息推送
本文是比较老得技术来实现,用最新技术实现小程序推送,请看 5行java代码实现微信小程序模版消息推送 (含springboot后台和小程序源码) 也可以看最新的视频讲解:https://edu.csd ...
- php推送手机,PHP_解析php做推送服务端实现ios消息推送,准备工作1.获取手机注册应用 - phpStudy...
解析php做推送服务端实现ios消息推送 准备工作1.获取手机注册应用的deviceToken(iphone手机注册应用时返回唯一值deviceToken) 2.获取ck.pem文件(做手机端的给) ...
- in java中文版百度云 thinking_小程序订阅消息推送(含源码)java实现小程序推送,springboot实现微信消息推送...
前面写过一篇云开发实现小程序订阅消息(模板消息)推送的文章,<借助云开发实现小程序订阅消息和模板消息的推送功能>是有好多同学用的是Java写后台,所以今天就再来写一篇Java后台实现小程序 ...
- java socket 推送机制_Java中websocket消息推送的实现代码
一.服务层 package com.demo.websocket; import java.io.IOException; import java.util.Iterator; import java ...
- Java后端实现安卓/IOS移动端消息推送(百度云推送)
本文主要介绍Java服务器端如何借助第三方推送平台(百度云推送)推送给移动端消息. 使用案例介绍: 根据客户的需求,需要做一个类似淘宝消息推送的功能,客户下订单.订单付款.订单商品已发货,以及客户完成 ...
- java整合消息推送_SpringMVC整合websocket实现消息推送及触发功能
本文为大家分享了SpringMVC整合websocket实现消息推送,供大家参考,具体内容如下 1.创建websocket握手协议的后台 (1)HandShake的实现类 /** *Project N ...
- java 微信模板_java开发微信模板消息推送
概述 微信公众平台开始支持前端网页,大家可能看到很多网页上都有分享到朋友圈,关注微信等按钮,点击它们都会弹出一个窗口让你分享和关注,这个是怎么实现的呢?今天就给大家讲解下如何在微信公众平台前端网页上添 ...
- 微信公众号开发--基于WxJava (微信开发 Java SDK)框架的,群发消息推送实现
群发消息推送实现,示例: InputStream inputStream = null;/*HttpURLConnection conn = (HttpURLConnection) new URL(& ...
- JAVA对接企业微信,实现文本消息推送
对接企业微信,实现文本消息推送,可分为以下两部: 1.根据企业ID+应用的凭证密钥,获取Token 2.根据Token+要传输的body,实现文本消息推送 1.根据企业ID+应用的凭证密钥,获取Tok ...
最新文章
- 【机器视觉】 endwhile算子
- IBM Watson物联网平台的两个MQTT工具
- 程序员的爱情独白(转)
- 【渝粤教育】国家开放大学2018年春季 0699-21T阅读与写作 参考试题
- mysql 数据迁移_【AWS 功能】Mysql 数据库迁移至Amazon RDS方案
- 作者:陈婷婷(1986-),女,中国科学院北京基因组研究所生命与健康大数据中心工程师...
- UI漂亮音乐分享网站源码
- c语言程序设计-简单的c语言程序
- 在Windows服务器上启用远程桌面连接
- 2021靠谱的IT培训机构排名重磅来袭!
- AppleALC.kext驱动支持的硬件型号与ID速查列表:
- garbor 特征 matlab,Gabor小波滤波用于纹理特征提取
- 利用Cydia Substrate Hook移动MM支付
- 跑revit计算机硬件要求,什么样的电脑能流畅跑Revit?Revit对电脑配置要求
- LabelMe标注的.json文件批量转Dataset,通过查询到多种代码无法在我电脑上正常工作,发现他们有共同的报错,于是修改后能正常工作。
- [Gym 102135][B - Freebie]2017-2018 8th BSUIR Open Programming Contest
- 相似图片搜索、算法、识别的原理解析(下)
- 易语言如何使用处理事件
- ❤❤全网最全-----VUE3.0最火爆的编辑器《TinyMCE》❤❤
- 微信怎样绑定企业邮箱?企业邮箱微信提醒?微信和邮箱能绑定吗?
热门文章
- 助力共享经济,芝麻信用背后的技术
- MaxCompute 项目子账号做权限管理
- Spring Cloud Alibaba迁移指南(三):极简的 Config
- MaxCompute 多租户数据安全体系
- 阿里云启动API创新大赛 设视频技术为场景赛题
- 云计算架构设计6大原则,你遵循了吗?| 赠书
- 垃圾回收策略和算法,看这篇就够了
- “我哥毕业1年,做Python挣了50W!”网友:吹得太少...
- 每年一波FPGA系列新品,这次Achronix专为AI/ML应用打造……
- react实现页面多个模块的切换