一、更改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深入学习(四)-----tomcat配置、websocket的更多相关文章

  1. SpringBoot入门之内嵌Tomcat配置

    spring boot默认web程序启用tomcat内嵌容器tomcat,监听8080端口,servletPath默认为 / .需要用到的就是端口.上下文路径的修改,在spring boot中其修改方 ...

  2. dubbo入门学习(四)-----dubbo配置

    配置来源 首先,从Dubbo支持的配置来源说起,默认有四种配置来源: JVM System Properties,-D参数 Externalized Configuration,外部化配置 Servi ...

  3. springboot深入学习(二)-----profile配置、运行原理、web开发

    一.profile配置 通常企业级应用都会区分开发环境.测试环境以及生产环境等等.spring提供了全局profile配置的方式,使得在不同环境下使用不同的applicaiton.properties ...

  4. JavaWeb学习笔记——Tomcat配置

    使用的Tomcat版本是apache-tomcat-6.0.20 详细的环境变量配置参考<windows 7系统安装与配置Tomcat服务器环境> 网址为http://jingyan.ba ...

  5. apache+tomcat配置负载均衡,实现http与websocket接口分压

    一.应用场景 在生产环境中,应用服务器(此文以tomcat为例)不免面临高访问量的压力,相比而言web服务器(此文以apache为例)能够承担更大的并发量.Apache本身带有一些模块,可以完成对应用 ...

  6. AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(四):开源的Silverlight运行容器的编译、配置

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  7. Java学习-032-JavaWeb_001 -- Tomcat环境部署及基本配置

    首先到 Tomcat 官网,下载对应的版本,我本机的系统是 WIN7 64BIT 的,因而我选择的是64bit 的zip包,如下图所示:

  8. Springboot学习03-SpringMVC自动配置

    Springboot学习03-SpringMVC自动配置 前言 在SpringBoot官网对于SpringMVCde 自动配置介绍 1-原文介绍如下: Spring MVC Auto-configur ...

  9. Java Web入门学习(一) STS与Tomcat配置

    Java Web学习(一) STS与Tomcat配置 一.IDE的选择 使用基于Eclipse的STS Ide ,个人感觉挺好用的. 地址:http://spring.io/tools/sts 根据以 ...

随机推荐

  1. vue 返回上一页后,上一页由参数渲染的内容无法显示

    思路1:将参数传递给第二个页面后,返回上一页时,再讲参数传回第一页(此方法适用于层级少的)(亲测有效) 思路2:将参数放到全局变量中(还未尝试过)

  2. Springboot学习03-SpringMVC自动配置

    Springboot学习03-SpringMVC自动配置 前言 在SpringBoot官网对于SpringMVCde 自动配置介绍 1-原文介绍如下: Spring MVC Auto-configur ...

  3. ajax中的contendType和dataType知识点梳理

    在ajax中有2个参数比较重要,之前一直没有搞清楚,下面我们开始梳理一下 1.contentType字段:这个字段的意思,ajax发送给后端的数据是什么类型 如果在ajax中不指定这个属性,则默认是u ...

  4. VS unable to update auto-refresh path。。。。

    手工创建提示报错的路径,重新生成,成功

  5. swift 带有下划线的UIbutton

    import UIKit /// 带下划线的Button class UnderlineButton: JYBaseButton { /// 下划线高度 var underLineHeight:CGF ...

  6. cocoapods 更新本地仓库 pod setup/update 无限远程中断

    升级 cocoapods 无限远程中断:网络不好 试了很多解决方法: 1.替换源,2.设置下载速度,3.清空本地master仓库,4.删了本地的pod库,5.半夜3-5点更新,6.按照失败提示的 (p ...

  7. java正则表达式(regular)

    哎呀妈呀,脑瓜疼----正则表达式 正则是用来处理复杂文本类型的 标准字符集合: \d --->代表0-9任意一个数字 \D ---->除了数字之外的任意字符 \w ----->字母 ...

  8. :before与::before的区别

    相同点 都可以用来表示伪类对象,用来设置对象前的内容 :befor和::before写法是等效的  不同点 :befor是Css2的写法,::before是Css3的写法 :before的兼容性要比: ...

  9. 微信小程序模板中使用循环

    原创文章 本篇介绍如何在模板里使用循环. 方法一: template.wxml,该文件内容为: <template name="msgItem1"> <block ...

  10. 微信公众号H5支付步骤

    微信公众平台:https://mp.weixin.qq.com/ 进入 微信支付 管理>开通支付功能. 微信支付|商户平台: 设置安全目录:https://pay.weixin.qq.com/i ...