热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

websocket定时推送

后端代码:publicclassWebSocketConfigimplementsWebSocketMessageBrokerConfigurer{publicvo

后端代码:

public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {public void registerStompEndpoints(StompEndpointRegistry registry) {registry.addEndpoint("/daoshu/socket").setAllowedOrigins("*")//添加允许跨域访问.withSockJS() ;}public void configureMessageBroker(MessageBrokerRegistry registry) {registry.enableSimpleBroker("/daoshu/socket/send","/user/");//推送消息前缀registry.setApplicationDestinationPrefixes("/daoshu/socket/req");//应用请求前缀registry.setUserDestinationPrefix("/user");//推送用户前缀}@Overridepublic void addArgumentResolvers(List arg0) {}@Overridepublic void addReturnValueHandlers(List arg0) {}@Overridepublic void configureClientInboundChannel(ChannelRegistration arg0) {}@Overridepublic void configureClientOutboundChannel(ChannelRegistration arg0) {}@Overridepublic boolean configureMessageConverters(List arg0) {return false;}@Overridepublic void configureWebSocketTransport(WebSocketTransportRegistration arg0) {}}

 

public class WebSocketController {@Resourceprivate SimpMessagingTemplate messagingTemplate;private Timer timer;private static int imgIndex = 0;private final String[] imgList = { "0.png", "1.png", "2.png", "3.png", "4.png", "5.png", "6.png" };@RequestMapping("/index")public String index() {return "index";}@MessageMapping("/message")public ResponseMessage toUser(RequestMessage msg) {timer = new Timer(true);long delay = 0;OrderTimeTask orderTimeTask = new OrderTimeTask(msg.getMessage());timer.schedule(orderTimeTask, delay, 2000);// 设定指定的时间time,此处为5sreturn new ResponseMessage("欢迎使用webScoket:" + msg.getMessage());}@ResponseBody@RequestMapping("/cancel")public ResponseMessage cancelTimer(HttpServletRequest request) {if (null != timer) {imgIndex = 0;timer.cancel();}return new ResponseMessage("关闭成功");}class OrderTimeTask extends TimerTask {private String message;public OrderTimeTask(String message) {this.message = message;}@Overridepublic void run() {try {String imgPath = imgList[imgIndex];TextMessage textMessage;if (imgIndex == 0) {textMessage = new TextMessage(message);} else {textMessage = new TextMessage(imgPath);}messagingTemplate.convertAndSendToUser("gis", "/message", textMessage.getPayload());imgIndex++;if (imgIndex == imgList.length)imgIndex = 0;} catch (Exception e) {e.printStackTrace();}}}}

 

前端代码:

<%&#64; page contentType&#61;"text/html;charset&#61;UTF-8" language&#61;"java"%>








输入名称&#xff1a;




 

 

 

 

 

 

 

 

 


推荐阅读
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
author-avatar
lodng
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有