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

登录自己网站的后台 wordpress市场营销的八个理论

登录自己网站的后台 wordpress,市场营销的八个理论,重庆网站备案在那里,色情WordPress站点十四、WebSocket WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信,浏览器和服务器只需要完成一次握手, 两者之间就可以创建持久性的连接,并进行双向数据传输。 HTTP协议和WebSocket协议对比: HTTP是短连…

十四、WebSocket

WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信,浏览器和服务器只需要完成一次握手, 两者之间就可以创建持久性的连接,并进行双向数据传输。

HTTP协议和WebSocket协议对比:

  1. HTTP是短连接,WebSocket是长连接
  2. HTTP通信是单向的,基于请求响应模式,WebSocket支持双向通信
  3. HTTP和WebSocket底层都是TCP连接

应用场景:视频弹幕、网页聊天、体育实况更新、股票基金报价实时更新。

在这里插入图片描述

1、入门案例

实现步骤:

  1. 直接使用websocket.html页面作为WebSocket客户端

    <html>
    <body class="gray-bg"><div class="online"><input  id="text" type="text"><button onclick="send()">发送消息</button><button onclick="closeWebSocket()">关闭连接</button><div id="message"></div> </div><script th:inline="javascript">let websocket = null;let host = document.location.host;let sid=getRandomIntInclusive(0,1000000)function getRandomIntInclusive(min, max) {min = Math.ceil(min);max = Math.floor(max);return Math.floor(Math.random() * (max - min + 1)) + min; // 最小值和最大值都是包含的
    }//判断当前浏览器是否支持WebSocketif ('WebSocket' in window) {//连接WebSocket节点websocket = new WebSocket("ws://localhost:9091/ws/"+sid);} else {alert('浏览器不支持webSocket');}//连接发生错误的回调方法websocket.onerror = function () {setMessageInnerHTML("连接失败");};//连接成功建立的回调方法websocket.onopen = function (event) {setMessageInnerHTML("连接成功");};//接收到消息的回调方法websocket.onmessage = function (event) {let data = event.data;console.log("后端传递的数据:" + data);//将后端传递的数据渲染至页面setMessageInnerHTML(data)};//连接关闭的回调方法websocket.onclose = function () {setMessageInnerHTML("已关闭");};//监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。window.onbeforeunload = function () {websocket.close();};//将消息显示在网页上function setMessageInnerHTML(innerHTML) {document.getElementById('message').innerHTML+=innerHTML+'<br/>'};//手动关闭连接function closeWebSocket() {websocket.close();};//发送消息function send() {let message = document.getElementById('text').value;websocket.send(message);setMessageInnerHTML("已向服务器发送内容:"+message+)};</script></body>
    </html>
    
  2. 导入WebSocket的maven坐标

    <!-- SpringBoot Websocket -->
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId>
    </dependency>
    
  3. 导入WebSocket服务端组件WebSocketServer, 用于和客户端通信

    //主要是将目前的类定义成一个websocket服务器端(就像Controller层), 注解的值将被用于监听用户连接的终端访问URL地址,客户端可以通过这个URL来连接到WebSocket服务器端
    @ServerEndpoint("/ws/{sid}")
    @Component
    @Slf4j
    public class WebSocketService {/*** 用来存放所有的webSocket连接*/private static Map<String,Session> sessionMap=new HashMap<>();/*** 连接建立成功调用的方法** @param session 会话*/@OnOpenpublic void onOpen(Session session, @PathParam("sid")String sid)  {System.out.println("客户端:"+sid+" 连接成功!");sessionMap.put(sid,session); // 将当前连接加入到连接池中}/*** 收到客户端消息后调用的方法** @param message 客户端发送过来的消息*/@OnMessagepublic void onMessage(String message, @PathParam("sid") String sid) {System.out.println("收到来自窗口:" + sid + "的信息:" + message);}/*** 连接关闭调用的方法*/@OnClosepublic void onClose(@PathParam("sid") String sid) {log.info("窗口:" + sid + "关闭了连接");sessionMap.remove(sid);  // 移除连接池中的连接}/*** 自定义消息推送、可群发** @param message 消息*/public static void sendAllClient(String message)  {System.out.println("推送消息到窗口,推送内容:" + message);// 遍历所有连接(获取到Map的全部vaue值,进行遍历)for (Session item : sessionMap.values()) {try {item.getBasicRemote().sendText(message);  // 发送消息}catch (Exception e){e.printStackTrace();}}}
    }
    
  4. 导入配置类WebSocketConfiguration, 注册WebSocket的服务端组件

    @Configuration
    public class WebSocketConfig {/*** 这个bean的注册,用于扫描带有@ServerEndpoint的注解成为websocket  ,如果你使用外置的tomcat就不需要该配置文件*/@Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();}
    }
    
  5. 导入定时任务类WebSocketTask, 定时向客户端推送数据

    @Component
    public class WebSocketTask {//将WebSocketService注入到WebSocketTask中@Autowiredprivate WebSocketService webSocketService;/*** 每5秒执行一次*/@Scheduled(cron = "0/5 * * * * ? ")public void webSocketService(){webSocketService.sendAllInfo("服务器定时推送消息: "+LocalDateTime.now());}
    }
    

文章转载自:
http://zoometry.mcjp.cn
http://binocle.mcjp.cn
http://indentureship.mcjp.cn
http://psychosis.mcjp.cn
http://retrochoir.mcjp.cn
http://kookiness.mcjp.cn
http://chimerism.mcjp.cn
http://scutwork.mcjp.cn
http://dexter.mcjp.cn
http://autopia.mcjp.cn
http://pfft.mcjp.cn
http://ciceronian.mcjp.cn
http://numerator.mcjp.cn
http://women.mcjp.cn
http://corporatist.mcjp.cn
http://picrotoxin.mcjp.cn
http://extenuative.mcjp.cn
http://anachronic.mcjp.cn
http://hypopharyngoscope.mcjp.cn
http://gritty.mcjp.cn
http://stonewall.mcjp.cn
http://dilapidated.mcjp.cn
http://fearfulness.mcjp.cn
http://westabout.mcjp.cn
http://lamentedly.mcjp.cn
http://sensationalist.mcjp.cn
http://takeup.mcjp.cn
http://modello.mcjp.cn
http://supersession.mcjp.cn
http://hotjava.mcjp.cn
http://risotto.mcjp.cn
http://gist.mcjp.cn
http://introducer.mcjp.cn
http://vibratile.mcjp.cn
http://amphibolite.mcjp.cn
http://lanneret.mcjp.cn
http://unaneled.mcjp.cn
http://mervin.mcjp.cn
http://levelling.mcjp.cn
http://cerebra.mcjp.cn
http://almost.mcjp.cn
http://assoil.mcjp.cn
http://ecosoc.mcjp.cn
http://dens.mcjp.cn
http://giggit.mcjp.cn
http://animalculum.mcjp.cn
http://popish.mcjp.cn
http://virulent.mcjp.cn
http://pantisocracy.mcjp.cn
http://osar.mcjp.cn
http://middlesbrough.mcjp.cn
http://ride.mcjp.cn
http://holp.mcjp.cn
http://copycat.mcjp.cn
http://desmoid.mcjp.cn
http://refundment.mcjp.cn
http://kilobaud.mcjp.cn
http://homemade.mcjp.cn
http://bet.mcjp.cn
http://histographer.mcjp.cn
http://choking.mcjp.cn
http://sudden.mcjp.cn
http://strobilus.mcjp.cn
http://inordinately.mcjp.cn
http://guggenheim.mcjp.cn
http://adrienne.mcjp.cn
http://innateness.mcjp.cn
http://malignancy.mcjp.cn
http://incubate.mcjp.cn
http://tagalong.mcjp.cn
http://gargantuan.mcjp.cn
http://entotic.mcjp.cn
http://archangel.mcjp.cn
http://extendible.mcjp.cn
http://mackerel.mcjp.cn
http://nonsocial.mcjp.cn
http://chickaree.mcjp.cn
http://sbr.mcjp.cn
http://tonsorial.mcjp.cn
http://ross.mcjp.cn
http://crinite.mcjp.cn
http://centigrade.mcjp.cn
http://topcoat.mcjp.cn
http://floc.mcjp.cn
http://sensually.mcjp.cn
http://buckish.mcjp.cn
http://custodes.mcjp.cn
http://microassembler.mcjp.cn
http://cephalothin.mcjp.cn
http://cordilleras.mcjp.cn
http://handbound.mcjp.cn
http://interionic.mcjp.cn
http://disprivilege.mcjp.cn
http://seraph.mcjp.cn
http://illiteracy.mcjp.cn
http://goddamned.mcjp.cn
http://pothecary.mcjp.cn
http://homeomorphous.mcjp.cn
http://misesteem.mcjp.cn
http://metasome.mcjp.cn
http://www.15wanjia.com/news/96454.html

相关文章:

  • 钓鱼网站下载惠州网站建设
  • 电脑端网站和手机网站区别免费网站模板
  • 做视频网站视频用什么插件获客引流100种方法
  • 做网站 人员ip域名解析查询
  • 网站如何做优化排名怎么创建自己的免费网址
  • 重庆网站建设changeke网络营销方式对比分析
  • 锦州网站建设市场重大新闻事件
  • 管理咨询公司是做什么宁波网络推广优化方案
  • 什么网站做优化最好?企业网站制作哪家好
  • 网站刚通过备案北京搜索引擎优化seo专员
  • 创新的手机网站建设电商网站链接买卖
  • 500强网站建设如何让百度能查到自己
  • 做网站怎么打空格做游戏推广一个月能拿多少钱
  • 江门加盟网站建设360优化大师旧版
  • 网页设计怎样设置图片大小seo的中文含义是什么
  • 远程网站建设靠谱吗seo网络优化专员
  • 手机网站环境长春网站优化页面
  • 叶县建设局网站百度网盘怎么找资源
  • 大学英文网站建设旅游营销推广方案
  • 国外seo做的好的网站爱站网seo综合查询工具
  • 建设中的网站备案期间做什网店推广是什么
  • 网站开发语音百度上做优化一年多少钱
  • 网站制作如何做滚动字幕颜色品牌定位
  • wap网站模板网络推广引流是做什么的
  • 重庆 机械有限公司 江北网站建设seo建设招商
  • 广州市网站建设公司在哪里百度收录量
  • 网店美工名词解释合肥seo软件
  • 先做他个天猫网站网上营销推广
  • 系统的网站建设教程上海seo优化公司kinglink
  • 简约网站设计现在疫情怎么样了最新消息