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实现消息推送相关推荐

  1. 小程序消息推送(含源码)java实现小程序推送,springboot实现微信消息推送

    本文是比较老得技术来实现,用最新技术实现小程序推送,请看 5行java代码实现微信小程序模版消息推送 (含springboot后台和小程序源码) 也可以看最新的视频讲解:https://edu.csd ...

  2. php推送手机,PHP_解析php做推送服务端实现ios消息推送,准备工作1.获取手机注册应用 - phpStudy...

    解析php做推送服务端实现ios消息推送 准备工作1.获取手机注册应用的deviceToken(iphone手机注册应用时返回唯一值deviceToken) 2.获取ck.pem文件(做手机端的给) ...

  3. in java中文版百度云 thinking_小程序订阅消息推送(含源码)java实现小程序推送,springboot实现微信消息推送...

    前面写过一篇云开发实现小程序订阅消息(模板消息)推送的文章,<借助云开发实现小程序订阅消息和模板消息的推送功能>是有好多同学用的是Java写后台,所以今天就再来写一篇Java后台实现小程序 ...

  4. java socket 推送机制_Java中websocket消息推送的实现代码

    一.服务层 package com.demo.websocket; import java.io.IOException; import java.util.Iterator; import java ...

  5. Java后端实现安卓/IOS移动端消息推送(百度云推送)

    本文主要介绍Java服务器端如何借助第三方推送平台(百度云推送)推送给移动端消息. 使用案例介绍: 根据客户的需求,需要做一个类似淘宝消息推送的功能,客户下订单.订单付款.订单商品已发货,以及客户完成 ...

  6. java整合消息推送_SpringMVC整合websocket实现消息推送及触发功能

    本文为大家分享了SpringMVC整合websocket实现消息推送,供大家参考,具体内容如下 1.创建websocket握手协议的后台 (1)HandShake的实现类 /** *Project N ...

  7. java 微信模板_java开发微信模板消息推送

    概述 微信公众平台开始支持前端网页,大家可能看到很多网页上都有分享到朋友圈,关注微信等按钮,点击它们都会弹出一个窗口让你分享和关注,这个是怎么实现的呢?今天就给大家讲解下如何在微信公众平台前端网页上添 ...

  8. 微信公众号开发--基于WxJava (微信开发 Java SDK)框架的,群发消息推送实现

    群发消息推送实现,示例: InputStream inputStream = null;/*HttpURLConnection conn = (HttpURLConnection) new URL(& ...

  9. JAVA对接企业微信,实现文本消息推送

    对接企业微信,实现文本消息推送,可分为以下两部: 1.根据企业ID+应用的凭证密钥,获取Token 2.根据Token+要传输的body,实现文本消息推送 1.根据企业ID+应用的凭证密钥,获取Tok ...

最新文章

  1. 【机器视觉】 endwhile算子
  2. IBM Watson物联网平台的两个MQTT工具
  3. 程序员的爱情独白(转)
  4. 【渝粤教育】国家开放大学2018年春季 0699-21T阅读与写作 参考试题
  5. mysql 数据迁移_【AWS 功能】Mysql 数据库迁移至Amazon RDS方案
  6. 作者:陈婷婷(1986-),女,中国科学院北京基因组研究所生命与健康大数据中心工程师...
  7. UI漂亮音乐分享网站源码
  8. c语言程序设计-简单的c语言程序
  9. 在Windows服务器上启用远程桌面连接
  10. 2021靠谱的IT培训机构排名重磅来袭!
  11. AppleALC.kext驱动支持的硬件型号与ID速查列表:
  12. garbor 特征 matlab,Gabor小波滤波用于纹理特征提取
  13. 利用Cydia Substrate Hook移动MM支付
  14. 跑revit计算机硬件要求,什么样的电脑能流畅跑Revit?Revit对电脑配置要求
  15. LabelMe标注的.json文件批量转Dataset,通过查询到多种代码无法在我电脑上正常工作,发现他们有共同的报错,于是修改后能正常工作。
  16. [Gym 102135][B - Freebie]2017-2018 8th BSUIR Open Programming Contest
  17. 相似图片搜索、算法、识别的原理解析(下)
  18. 易语言如何使用处理事件
  19. ❤❤全网最全-----VUE3.0最火爆的编辑器《TinyMCE》❤❤
  20. 微信怎样绑定企业邮箱?企业邮箱微信提醒?微信和邮箱能绑定吗?

热门文章

  1. 助力共享经济,芝麻信用背后的技术
  2. MaxCompute 项目子账号做权限管理
  3. Spring Cloud Alibaba迁移指南(三):极简的 Config
  4. MaxCompute 多租户数据安全体系
  5. 阿里云启动API创新大赛 设视频技术为场景赛题
  6. 云计算架构设计6大原则,你遵循了吗?| 赠书
  7. 垃圾回收策略和算法,看这篇就够了
  8. “我哥毕业1年,做Python挣了50W!”网友:吹得太少...
  9. 每年一波FPGA系列新品,这次Achronix专为AI/ML应用打造……
  10. react实现页面多个模块的切换