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

网页设计与网站建设中的热点seo推广营销公司

网页设计与网站建设中的热点,seo推广营销公司,设计个网站多少钱,百度竞价推广怎么样才有效果WebSocket实时异步通信 【一】WebSocket简介 WebSocket是HTML5推出一个协议规范#xff0c;用来B/S模式中服务器端和客户端之间进行实时异步通信。 众所周知#xff0c;传统的HTTP协议中#xff0c;服务器端和客户端通信只能是在客户端发送一个请求之后#xff0c;服务器端…WebSocket实时异步通信 【一】WebSocket简介   WebSocket是HTML5推出一个协议规范用来B/S模式中服务器端和客户端之间进行实时异步通信。   众所周知传统的HTTP协议中服务器端和客户端通信只能是在客户端发送一个请求之后服务器端才能对其响应也就是说服务器端是不能够主动向客户端发起数据的。   当在服务器端和客户端之间需要频繁地实时通信时传统HTTP协议只能通过Ajax轮询的方式即客户端每隔一段时间请求一次服务器来获得更新这样做的对服务器的性能要求特别高而且占用很多无用的带宽、流量。     图一 传统HTTP请求会话 图二 WebSocket请求会话   WebSocket在实时通信方面很好的弥补了传统HTTP协议的不足。它是一个建立在HTTP协议之上的协议通过HTTP建立了WebSocket连接之后服务器端和客户端就可以随时通信了。   【二】WebSocket的使用 服务器端   Tomcat7.0.5版本及以后的版本之中已经内嵌了支持WebSocket标准协议的jar包websocket-api.jar在服务器端开发中通过ServerEndpoint注解表明WebSocket服务端运行在 ws://[Server端IP或域名]:[Server端口]/project-name/注解参数值 路径指定的位置客户端在创建WebSocket对象的时候通过该路径指定服务器响应的WebSocket。   OnOpen、OnClose、OnError注解WebSocket方法分别响应建立连接、关闭连接和出错时候的回调函数OnMessage注解的方法响应收到客户端发送数据的回调函数。Session相当于客户端可以向客户端发送数据。   WebSocket类处理客户端的所有请求然后根据不同页面的请求调用不同的类对象进行处理。 import java.io.IOException;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import javax.websocket.Session;import org.apache.log4j.Logger;import net.sf.json.JSONObject;ServerEndpoint(/websocket) public class WebSocket {public static Logger log Logger.getLogger(WebSocket.class); private Statement stmt null;private Connection conn null; private Timer timer;OnOpenpublic void onOpen(Session s) { log.info(client connected);timer new Timer();//connect databasetry {ResourceBundle config ResourceBundle.getBundle(config);String driver config.getString(jdbc.driver);String url config.getString(jdbc.cfg.url);String username config.getString(jdbc.cfg.username);String password config.getString(jdbc.cfg.password);Class.forName(driver);conn DriverManager.getConnection(url, username, password);stmt conn.createStatement(); log.info(connect database successful);}catch (ClassNotFoundException e) {e.printStackTrace();}catch (SQLException e) {e.printStackTrace();}}OnMessagepublic void onMessage(final String message, Session s) throws IOException, InterruptedException{log.info(messagemessage);final JSONObject json JSONObject.fromString(message);if(json.getInt(pageIndex) 2){ //热门配置页不循环推送 HotConfig hotConfig new HotConfig(s, stmt);hotConfig.sendWebSocket(json);}else if(json.getInt(pageIndex) 3){final TrafficLog trafficLog new TrafficLog(s, stmt);int isRealTimeSearch json.getInt(isRealTimeSearch);if(isRealTimeSearch 1){timer.schedule(new TimerTask() { //每隔5分钟执行一次Override public void run() {trafficLog.sendWebSocket(json);} }, 0, 300000); }else{ //只执行一次timer.schedule(new TimerTask() {Override public void run() {trafficLog.sendWebSocket(json);} }, 0); }}else if(json.getInt(pageIndex) 4){final RuleLog ruleLog new RuleLog(s, stmt);int isRealTimeSearch json.getInt(isRealTimeSearch);if(isRealTimeSearch 1){timer.schedule(new TimerTask() { //每隔5分钟执行一次Override public void run() {ruleLog.sendWebSocket(json);} }, 0, 300000); }else{ //只执行一次timer.schedule(new TimerTask() {Override public void run() {ruleLog.sendWebSocket(json);} }, 0); }}else{ //isp页面的请求final ISPLog ispLog new ISPLog(s, stmt);int isRealTimeSearch json.getInt(isRealTimeSearch);if(isRealTimeSearch 1){timer.schedule(new TimerTask() { //每隔5分钟执行一次Override public void run() {ispLog.sendWebSocket(json);} }, 0, 300000); }else{ //只执行一次timer.schedule(new TimerTask() {Override public void run() {ispLog.sendWebSocket(json);} }, 0); }}}OnClosepublic void onClose(Session s) {log.info(Client closed);try {timer.cancel(); if (stmt ! null) {stmt.close();stmt null;}if (conn ! null) {conn.close();conn null;}} catch (SQLException e) {e.printStackTrace();}}OnErrorpublic void onError(Throwable e) {log.error(WebSocket Error);e.printStackTrace();} }   响应具体某个页面的请求 import java.io.IOException; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import javax.websocket.Session; import org.apache.log4j.Logger; import net.sf.json.JSONObject;public class HotConfig {private Session session;private Statement stmt null;private ResultSet rs null;private static Logger log Logger.getLogger(HotConfig.class);public HotConfig(Session s, Statement stmt){this.session s;this.stmt stmt;}public void sendWebSocket(final JSONObject json){String srcIp json.getString(srcIp);String startTime json.getString(startTime);String endTime json.getString(endTime);MapString, ArrayListLong params new HashMapString, ArrayListLong();ArrayListLong pzID new ArrayListLong(); //different chart lines nameArrayListLong statCount new ArrayListLong(); //chart x axisArrayListLong pzIDReverse new ArrayListLong(); //different chart lines nameArrayListLong statCountReverse new ArrayListLong(); //chart x axistry {String srcIpCriteria ; //拼接源IP SQL条件if(srcIp.length() 0) {srcIpCriteria where CLIENT_IPsrcIp ;}String startTimeCriteria ; //拼接源IP SQL条件if(startTime.length() 0) {if(srcIpCriteria.equals())startTimeCriteria where STAT_TIME to_date(startTime ,yyyy-mm-dd hh24:mi);elsestartTimeCriteria and STAT_TIME to_date(startTime ,yyyy-mm-dd hh24:mi);}String endTimeCriteria ; //拼接源IP SQL条件if(endTime.length() 0) {if(srcIpCriteria.equals() startTimeCriteria.equals())endTimeCriteria where STAT_TIME to_date( endTime,yyyy-mm-dd hh24:mi) ;elseendTimeCriteria and STAT_TIME to_date( endTime,yyyy-mm-dd hh24:mi) ;}String sql select * from (select PZ_ID, sum(STAT_COUNT) as sumCount from RULE_HOT_CONFIG_INFO srcIpCriteria startTimeCriteria endTimeCriteria group by PZ_ID order by sumCount desc) where rownum 50; log.info(sqlsqlexecute success);rs stmt.executeQuery(sql);while(rs.next()){ pzID.add(rs.getLong(1));statCount.add(rs.getLong(2));}for(int i pzID.size() - 1; i 0; i--){pzIDReverse.add(pzID.get(i));statCountReverse.add(statCount.get(i));}params.put(pzID, pzIDReverse);params.put(statCount,statCountReverse); session.getBasicRemote().sendText(JSONObject.fromBean(params).toString());log.info(主动发给前端的数据JSONObject.fromBean(params).toString());} catch (IOException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}}   客户端   目前主流的浏览器Firefox、Chrome已经支持WebSocket协议这意味只不需要引用额外的js库就可以直接使用WebSocket了。 script typetext/javascript      //创建WebSocket对象用于一开始建立连接之后就不要再建立连接了var webSocket new WebSocket(ws://localhost:8080/websocket/websocket);webSocket.onopen function(event) {};webSocket.onmessage function(event) {        //接收来自服务器的数据这里客户端没有发送任何请求任何时间接收到数据都可以异步调用onMessage(event);        var  m JSON.parse(event.data);        alert(m);};webSocket.onerror function(event) {}; function onMessage(event) {} /script    推荐学习文章http://www.ibm.com/developerworks/cn/java/j-lo-WebSocket/         http://www.tuicool.com/articles/7zyMvy6         http://www.alixixi.com/web/a/2014032492868.shtml转载于:https://www.cnblogs.com/vincent-vg/p/5831421.html
http://www.pierceye.com/news/772475/

相关文章:

  • 湖州建设网站制作多多进宝cms网站建设
  • 自己做网站有哪些方法呢深圳网站设计张兵
  • 网站开发技术的选择wordpress 标签 中文
  • 建设速干裤移动网站公司logo注册
  • 中山网站建设找阿江欢迎页网页设计作品欣赏
  • seo是东莞企业网站排seo网站制作与管理技术...
  • 哪里有建设好的网站做网站用哪个预装系统
  • h5技术建设网站的知识wordpress+主题+欣赏
  • 如何优化网站排名淘宝客 备案 网站名称
  • 网站后台管理系统源代码沧州市宇通网站建设公司
  • 郴州网站设计公司阜新网站设计
  • 成都网站制作中国互联个人做电影网站赚钱吗
  • 如何做自己的影视网站惠州惠城网站建设
  • 温州网站推广外包推推蛙网站建设
  • 北京百度网站排名优化四川公共资源交易网招标网
  • 上海网站制作商多用户网上商城
  • 四川建设网电子招投标网站莱芜金点子电话
  • 深圳科技网站建设网站怎么做跳站
  • 做网站需要多少人全国物流货运平台
  • 温州建网站用自己的电脑做网站
  • 综合性门户网站有哪些高端网站建设 房产
  • 百度做的网站能优化吗如何在jsp上做网站页面代码
  • 广州市品牌网站建设公司营销型网站开发推广
  • 甜品网站首页设计用php做的网站模版
  • 怎样做企业的网站百度下载安装免费版
  • 常州市网站优化汕头网站建设和运营
  • wordpress 同分类评论调用seo排名是什么
  • 网站建设推广怎么玩软件开发模型是什么
  • 网站开发报价表格海口注册公司代理公司地址电话
  • 西宁好的网站建设视频网站文案