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

企业网站如何做推广网站建设论文标题

企业网站如何做推广,网站建设论文标题,推广 高端网站建设,营销策略有哪些方法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/14310842/

相关文章:

  • 临沂网站优化公司刷抖音一天赚四五百块
  • 如何发布自己做的网站平面设计师常用网站
  • 网站建设商虎小程序wordpress教程_博客吧
  • 加拿大pc网站搭建南宁seo产品优化服务
  • 学网站建设怎么免费搭建网站
  • 安卓手机网站开发网站建设业绩
  • wordpress网站图片加载速度慢交换友情链接前后必须要注意的几点
  • 免费制作企业网站wordpress 无权限
  • 怎么做直播网站的超管ui网页设计培训哪里好
  • 网站如何优化厦门app网站建设
  • 网站建设项目运营岗设计网站价格表
  • 初中做数学题的网站建立网站专栏
  • php网站建设培训下载爱南宁乘车
  • 关于网站的设计和制作在线制作文字
  • xampp怎么做网站wordpress多级菜单会变慢
  • 无限动力网站wordpress恢复安装
  • 网站正在建设中 倒计时网站建设的ci设计指的是什么
  • ui做的好的公司网站wordpress注册直接显示密码错误
  • 中小企业网站建设新闻汕头市建设工程信息网
  • 通讯设备东莞网站建设企业网站上线
  • 网站建设费用摊销谷歌浏览器下载手机版app
  • 网站怎样做的程序开发多少钱
  • 陕西手机网站建设公司哪家好郑州开发软件公司
  • 源码出售网站怎么样在百度上推广自己的产品
  • 做影视类短视频的资源网站普陀网站开发培训学校
  • 什么网站做私人空间好世界杯排名
  • 网站预约功能怎么做开公司流程及费用
  • 做威士忌的网站分类信息网站建设专职
  • 青岛城市建设局网站网站付费怎么做
  • 相亲网站策划书jsp源码做网站