springboot深入学习-----tomcat配置websocket

阿里-马云的学习笔记      2022-04-25     141

关键词:

 一、更改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:双向数据交流

 

深入学习微框架:springboot

   由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的... 查看详情

day668.web容器学习路径-深入拆解tomcat&jetty(代码片段)

...器学习路径Hi,阿昌来也,今天开始学习新的文章深入拆解Tomcat&Jetty,更多去学习关于Web容器相关的知识。一、Web容器是什么?回顾一下Web技术的发展历史,可以帮助你理解Web容器的由来。早期的Web应用主... 查看详情

springboot学习笔记——自动装配原理

【狂神说Java】SpringBoot最新教程IDEA版通俗易懂_哔哩哔哩_bilibili一、剖析pom.xml文件1.spring-boot-dependencies核心依赖打开springboot的配置文件pom.xml(maven项目的核心配置文件),通过深入其父项目,可以查看其调用关系... 查看详情

学习springboot

什么是springboot?springboot是一款快速开发的框架,能够快速整合第三方框架,全部采用注解的方式,内置tomcat容器,springboot的web组件默认集成的是springMVC框架。优点:1.省去了各种繁琐的配置,开箱即用。2.可以打jar包直接使用ja... 查看详情

springboot2.x快速构建和配置

这篇文章旨在快速了解springboot,能快速进入学习微服务而写的.基本相关的涉及都有所介绍但是都不深入,所以分类放在了springcloud里面了,现在开启了springboot的深入学习,后面有每个章节对springboot的深入介绍,现在也移到了springboot分... 查看详情

springboot学习笔记内嵌tomcat和springmvc(代码片段)

springBoot学习笔记(五)内嵌tomcat和springmvc源码剖析内嵌tomcattomcat自动配置类ServletWebServerFactoryAutoConfigurationSpringBoot启动内置tomcat流程getWebServer方法的调用springmvc自动配置(一)自动配置DispatcherServlet和DispatcherServlet... 查看详情

蘑菇君深入源码学习tomcat系列-tomcat与servlet的那些事(代码片段)

瞎扯淡最近很焦虑,每天过着咸鱼般的生活,感觉前途渺茫。再这么下去,整个人就真成咸鱼了。焦虑来源于日复一日工作中,自己变得越来越麻木,不会动脑思考。憋说举一反三了,脑子多转一下都感觉... 查看详情

springboot学习笔记——springboot和微服务架构

一、SSM框架和SpringBoot框架SSM框架的配置变得越来越复杂,出现了SpringBoot框架作为简化,也逐渐取代SSM框架在Java开发中的地位。SSM框架:打war包,开启Tomcat,在Tomcat中运行。SpringBoot框架:打jar包,内嵌... 查看详情

springboot学习笔记

...直接运行。HelloWorldApplication是启动类,我们右击RunAs选择SpringBootapp。项目运行好之后 在浏览器输入:http://localhost:8080/ 看到这个页面项目就算启动好了。然后新建一个HelloWorldC 查看详情

springboot基础学习

SpringBoot基础回顾JavaSE:OOPMySQL:持久化html+css+js+jquey+框架:JavaWeb:原始MVC框架SSM:框架,简化了开发流程,配置复杂war:Tomcat运行SpringBoot:内嵌tomcat,微服务架构微服务微服务是一种风格、要求我们在开发一个应用时,这个应... 查看详情

springboot源码学习系列之嵌入式servlet容器

1、前言简单介绍SpringBoot的自动配置就是SpringBoot的精髓所在;对于SpringBoot项目是不需要配置Tomcat、jetty等等Servlet容器,直接启动application类既可,SpringBoot为什么能做到这么简捷?原因就是使用了内嵌的Servlet容器,默认是使用Tomc... 查看详情

springboot源码学习系列之嵌入式servlet容器

1、前言简单介绍SpringBoot的自动配置就是SpringBoot的精髓所在;对于SpringBoot项目是不需要配置Tomcat、jetty等等Servlet容器,直接启动application类既可,SpringBoot为什么能做到这么简捷?原因就是使用了内嵌的Servlet容器,默认是使用Tomc... 查看详情

day680.大佬如何学习源码-深入拆解tomcat&jetty(代码片段)

大佬如何学习源码Hi,我是阿昌,今天学习分享是关于大佬如何学习源码。不知道你有没有留意到,不少高端开发岗位在招聘要求里往往会写这么一条:研究过框架和中间件源码的优先考虑。这是因为一切秘密都... 查看详情

springboot学习总结(代码片段)

引言之前也没有深入学习过spring框架,最近SpringBoot流行起来后想补下这方面的知识,于是照着SpringBoot官网上的英文教程开始helloworld入门,踩到几个小坑,记录下学习流程。SpringBoot有哪些优点SpringBoot可以帮助我们快速搭建应用... 查看详情

springboot官方文档入门及使用

...大部分),以及个人使用经验及问题。其他说明:如果对SpringBoot没有概念,请先移步上一篇文章 SpringBoot学习。本篇原本是为了深入了解下SpringBoot而出现的。另外,SpringBoot仍然是基于Spring的,建议在赶完工之后深入学习下Sp... 查看详情

springboot学习入门简易版一---springboot2.0介绍

1.1为什么用springboot(2)传统项目,整合ssm或ssh,配置文件,jar冲突,整合麻烦。Tomcat容器加载web.xml配置内容springboot完全采用注解化(使用注解方式启动springmvc,没有web.xml,springmvc3后采用注解方式启动springmvc),简化配置,快速整... 查看详情

springboot中的tomcat是如何启动的?

(---------转自网上文章-----------)前言我们知道SpringBoot给我们带来了一个全新的开发体验,我们可以把web程序打包成jar包,直接启动,这就得益于SpringBoot内置了容器,可以直接启动。本文将以Tomcat为例,来看看SpringBoot是如何启... 查看详情

第253天学习打卡(知识点回顾springboot特点)

知识点回顾SpringBoot特点1.1依赖管理父项目做依赖管理开发导入starter场景启动器无需关注版本号,自动版本仲裁可以修改版本号1.2自动配置自动配好Tomcat引入Tomcat依赖配置Tomcat自动配置好SpringMVC引入SpringMVC全套组件自动配好Sp... 查看详情