zoukankan      html  css  js  c++  java
  • springboot深入学习(三)-----tomcat配置、websocket

     一、更改servlet服务器

    springboot中默认可以集成多种servlet容器,当引入如下依赖时:

    springboot默认以tomcat作为项目的servlet容器,如果用户想要替换tomcat为jetty或者undertow,只需要做以下更改:

    二、tomcat配置

      目前来说tomcat受众应该还是更广,所以本人暂时选用tomcat,相关配置如下:

      a、通用servlet容器配置(也就是针对jetty、undertow都有效的)

      

      b、tomcat特有

      

    三、websocket

      websocket为浏览器以及服务器实现了双工异步通信的功能,说白了,就是客户端可以向服务端发送消息,服务端也可以向客户端发送消息。但是我们直接使用websocket协议开发起来特别繁琐,一般使用更高级别的协议,stomp,使用一个基于帧的

    格式来定义消息,与http的request以及response类似。springboot中使用websocket基于spring-boot-starter-websocket。

      1、广播式

      服务端有消息,会发送到当前情况所有连接在服务端的客户端上去。

      完整的项目结构:

      

      a、配置websocket

      

      b、浏览器发送到服务器端使用的消息类

      

      c、服务端发送到浏览器的消息类

      

      d、服务端

      

      e、新建ws.html,放到resources/templates路径下

    f、页面请求入口

       测试运行结果:

      1、浏览器中打开多个http://localhost:8080/ws,并打开连接

      

      输入阿里-马云,结果如下:

      

        

      搞定,客户端可以发送消息到服务端,服务端可以向订阅了的所有客户端发送对应的消息。

    四、总结

      为啥有了http协议,还需要websocket呢,因为http协议只能做到客户端主动请求服务端,然后获得相应的数据,但是服务端不能主动推送数据到客户端。因此之前都是使用轮询的方式来获取到相应的数据,这种方式的效率

    非常低,因为需要不停的打开与断开连接。websocket基于tcp协议,并且客户端可以发送请求到服务端,服务端也可以发送数据到客户端。具体特点如下:

    websocket原理图:

    解释一波英文:

      handshake:握手

      acknowledgement:确认

      bi-directional messages:双向数据交流

  • 相关阅读:
    我爱java系列之---【微服务间的认证—Feign拦截器】
    我爱java系列之---【设置权限的三种解决方案】
    581. Shortest Unsorted Continuous Subarray
    129. Sum Root to Leaf Numbers
    513. Find Bottom Left Tree Value
    515. Find Largest Value in Each Tree Row
    155. Min Stack max stack Maxpop O(1) 操作
    painting house
    Minimum Adjustment Cost
    k Sum
  • 原文地址:https://www.cnblogs.com/alimayun/p/10269614.html
Copyright © 2011-2022 走看看