当前位置: 首页 > news >正文

企业网站如何做推广在线阅读 wordpress主题

企业网站如何做推广,在线阅读 wordpress主题,河北建基官网,深圳品牌设计公司有哪些websocket 协议是在 http 协议上的一种补充协议#xff0c;是 html5 的新特性#xff0c;是一种持久化的协议。其实 websocket 和 http 关系并不是很大#xff0c;不过都是属于应用层的协议#xff0c;接下来我们就开始实战。 websocket 定时推送 本教程基于 springboot …websocket 协议是在 http 协议上的一种补充协议是 html5 的新特性是一种持久化的协议。其实 websocket 和 http 关系并不是很大不过都是属于应用层的协议接下来我们就开始实战。 websocket 定时推送 本教程基于 springboot 为脚手架没使用过 springboot 同学可以看往期文章或者直接去 spring 官网拉一个 springboot 基础项目下来。 加入依赖 在 springboot 的项目中添加一下 webSocket 依赖一般一项新技术的引入在 springboot 中也只是引用一个此技术 starter 的依赖其他配置基本 springboot 帮我们解决了。 dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-websocket/artifactId /dependency 配置 新建一个 Java 配置类注入 ServerEndpointExporter 配置如果是使用 springboot 内置的 tomcat 此配置必须如果是使用的是外部 tomcat 容器此步骤请忽略。看 spring 源码中这样描述使用此配置可以关闭 servlet 容器对 websocket 端点的扫描这个暂时没有深入研究。 Configuration public class WebSocketConfig { Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); } } 核心代码 接下来最核心的类其实就是提供一个前后端交互的类实现消息的接收推送。 ServerEndpoint(value /wsdemo) 前端通过此 URI 和后端交互建立连接 Component 不用说将此类交给 spring 管理 OnOpen websocket 建立连接的注解前端触发上面 URI 时会进入此注解标注的方法和之前关于 DWR 文章中的 onpage 方法类似 OnClose 顾名思义关闭连接销毁 session OnMessage 收到前端传来的消息后执行的方法 ServerEndpoint(value /wsdemo) Component public class MyWebSocket { private static int onlineCount 0; private static CopyOnWriteArraySetMyWebSocket webSocketSet new CopyOnWriteArraySetMyWebSocket(); private Session session; OnOpen public void onOpen(Session session) { this.session session; webSocketSet.add(this); addOnlineCount(); System.out.println(有新连接加入当前在线人数为 getOnlineCount()); try { sendMessage(连接已建立成功.); } catch (Exception e) { System.out.println(IO异常); } } OnClose public void onClose() { webSocketSet.remove(this); subOnlineCount(); System.out.println(有一连接关闭当前在线人数为 getOnlineCount()); } OnMessage public void onMessage(String message, Session session) { System.out.println(来自客户端的消息: message); } OnError public void onError(Session session, Throwable error) { System.out.println(发生错误); error.printStackTrace(); } public void sendMessage(String message) throws IOException { this.session.getBasicRemote().sendText(message); } public static synchronized int getOnlineCount() { return onlineCount; } public static synchronized void addOnlineCount() { MyWebSocket.onlineCount; } public static synchronized void subOnlineCount() { MyWebSocket.onlineCount--; } public Session getSession() { return session; } public void setSession(Session session) { this.session session; } public static CopyOnWriteArraySetMyWebSocket getWebSocketSet() { return webSocketSet; } public static void setWebSocketSet(CopyOnWriteArraySetMyWebSocket webSocketSet) { MyWebSocket.webSocketSet webSocketSet; } } 定时任务 使用 spring 的 Schedule 建立定时任务 EnableScheduling 开启 spring 定时任务功能 Scheduled(cron 0/10 * * * * ?) 用于标识定时执行的方法此处主要方法返回值一定是 void没有入参。对应定时时间配置可以百度 cron 语法根据自己的业务选择合适的周期 在这类中我们通过上面 MyWebSocket 提供的静态方法获取其中的 webSocketSet 来获取所有此业务相关的所有 websocketsession可以在定时任务中对 session 内容进行验证判断权限验证等进行发送消息 Component EnableScheduling public class TimeTask { private static Logger logger LoggerFactory.getLogger(TimeTask.class); Scheduled(cron 0/1 * * * * ?) public void test(){ System.err.println(********* 定时任务执行 **************); CopyOnWriteArraySetMyWebSocket webSocketSet MyWebSocket.getWebSocketSet(); int i 0 ; webSocketSet.forEach(c-{ try { c.sendMessage( 定时发送 new Date().toLocaleString()); } catch (IOException e) { e.printStackTrace(); } }); System.err.println(/n 定时任务完成.......); } } 前端页面 前端页面可以参考使用主要要更改调用的 url 为自己项目 URL !DOCTYPE HTML html head titleMy WebSocket/title /head body Welcomebr/ input typetext /button onclicksend()Send/button button onclickcloseWebSocket()Close/button div /div /body script typetext/javascript var websocket null; //判断当前浏览器是否支持WebSocket ,主要此处要更换为自己的地址 if(WebSocket in window){ websocket new WebSocket(ws://localhost:8886/wsdemo); } else{ alert(Not support websocket) } //连接发生错误的回调方法 websocket.onerror function(){ setMessageInnerHTML(error); }; //连接成功建立的回调方法 websocket.onopen function(event){ setMessageInnerHTML(open); } //接收到消息的回调方法 websocket.onmessage function(event){ setMessageInnerHTML(event.data); } //连接关闭的回调方法 websocket.onclose function(){ setMessageInnerHTML(close); } //监听窗口关闭事件当窗口关闭时主动去关闭websocket连接防止连接还没断开就关闭窗口server端会抛异常。 window.onbeforeunload function(){ websocket.close(); } //将消息显示在网页上 function setMessageInnerHTML(innerHTML){ document.getElementById(message).innerHTML innerHTML br/; } //关闭连接 function closeWebSocket(){ websocket.close(); } //发送消息 function send(){ var message document.getElementById(text).value; websocket.send(message); } /script /html 效果演示 最后说一句(求关注!别白嫖) 如果这篇文章对您有所帮助或者有所启发的话求一键三连点赞、转发、在看。 关注公众号woniuxgg在公众号中回复笔记  就可以获得蜗牛为你精心准备的java实战语雀笔记回复面试、开发手册、有超赞的粉丝福利
http://www.hkea.cn/news/14286853/

相关文章:

  • html中文美食网站oa系统是什么系统
  • 我要建企业营销型网站深圳建站公司告诉你十个建站步骤
  • 网站服务器买了后怎么做福建网站建设哪家专业
  • 长沙银行网站建设采购网站建设招标方案
  • 威海高端网站建设网站被墙查询
  • 南京企业网站排名优化网页制作app下载
  • 网站一般怎么维护网站源码采集
  • 代挂QQ建设网站企业网站建立要做的准备
  • 地方做什么网站公司如何建立网站
  • 网站地图是怎么做的wordpress注册添加验证码
  • 中国建设银行幼儿缴费官网站域名证书查询网站
  • 免费发广告的网站大全潍坊网站制作小程序
  • xp系统中做网站服务器零基础学网站建设 知乎
  • 建设银行网站注册用户名不通过网站建设技术线路选择
  • 网站界面设计的基本原则是什么好的html5网站
  • 创意设计网站推荐怎么看一个网站用什么平台做的
  • 营销型网站源码网站一般几年
  • 专注高端网站设计凡客陈年
  • 网站app充值记账凭证怎么做山西省住房与城乡建设部网站
  • 建设营销型网站服务网站建设与推广实训报告册
  • 网站漂浮特效网站开发用的电脑
  • 福田网站建设公司哪家性价比高什么是灰色网站
  • 恐怖音乐怎么做的视频网站高质量的邯郸网站建设
  • 网站运营阶段松江做网站
  • 做标书有哪些网站能接到名词解释搜索引擎优化
  • 帝国程序如何改网站标题引进韩国电影
  • 如何在网站做直播间网站优化月总结
  • 恺策网优 营销型网站建设品牌服务商登陆江西建设厅三类人员的网站
  • i深建官方网站电影vip网站建设步骤
  • 太原网站建设网站wordpress 媒体库 分类