当前位置: 首页 > 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/14538197/

相关文章:

  • 营销型网站制作培训多少钱建设企业网站方法
  • 雅安做网站的公司笔记本网站开发背景
  • ui设计灵感网站怎样建公司网站
  • 定制建站公司jsp网站入门
  • asp企业网站网站开发工程师需要什么证书
  • 青岛网站建设华夏郑州公司网站建设哪家好
  • 深圳市建设局科技处网站太原网站维护
  • 网站登录页面做汽车团购网站有哪些
  • 永康建设网站潍坊网站空间
  • 网站建设注意哪些问题上海建设手机网站
  • 河南省和城乡建设厅网站首页做冠县梨园网站怎么做
  • 佛山专业网站建设公司做英文网站挂谷歌广告
  • 旅游网站开发实验报告wordpress 路径标签
  • 光速网络网站大型电子商务网站建设
  • 用vs做网页是怎么创建网站的国外精产品1688
  • 网站建设综合报告外包项目
  • wordpress 3.8.3 下载seo优化厂商
  • 宁波做公司网站的公司山西疾控最新通告今天
  • 系网站建设总结报告济南网站的建设
  • 怎么样自己创建网站设置网站默认编码
  • 网站首页策划怎么做顺德网站制作案例价位
  • 网站开发师培训要加强分院网站建设
  • 十大网站建设菠菜网站模板
  • 临海大经建设集团网站多层次网络营销合法吗
  • 网站设置默认主页做网站有没有免费空间
  • 域名只做邮箱没网站要备案吗flash网站下载
  • 徐州手机网站上海优秀网站设计
  • 建设银行官网站预约怎样做彩票投资网站
  • 怎样才可以知道网站是否优化网络推广文案案例
  • 网站管理系统 phpwordpress数据库容量