Websocket教程SpringBoot+Maven整合(详情)
1、大话websocket及课程介绍
	简介:
		websocket介绍、使用场景分享、学习课程需要什么基础
	笔记:
		websocket介绍:
			WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端
websocket使用场景分享
			如弹幕,网页聊天系统,实时监控,股票行情推送等
学习课程需要什么基础:
			javaweb基础, html, js, http协议
2、课程技术选型和浏览器兼容讲解
	简介:
		简单介绍什么是springboot、socketjs、stompjs,及解决使用浏览器兼容问题
	笔记:
	知识点:
		技术框架基本介绍
			springboot:
				是什么:
					1、简化新Spring应用的初始搭建以及开发过程
					2、嵌入的Tomcat,无需部署WAR文件
					3、简化Maven配置, 自动配置Spring
学习资料:
					1、官网 https://projects.spring.io/spring-boot
					2、springboot整合websocket资料: https://spring.io/guides/gs/messaging-stomp-websocket/
socketjs:	
				是什么:
					1、是一个浏览器JavaScript库,提供了一个类似WebSocket的对象。
					2、提供了一个连贯的跨浏览器的JavaScriptAPI,在浏览器和Web服务器之间创建了一个低延迟,全双工,跨域的通信通道
					3、在底层SockJS首先尝试使用本地WebSocket。如果失败了,它可以使用各种浏览器特定的传输协议,并通过类似WebSocket的抽象方式呈现它们
					4、SockJS旨在适用于所有现代浏览器和不支持WebSocket协议的环境。
学习资料:
					1、git地址:https://github.com/sockjs/sockjs-client
stompjs:
				是什么:
					1、STOMP Simple (or Streaming) Text Orientated Messaging Protocol
					它定义了可互操作的连线格式,以便任何可用的STOMP客户端都可以与任何STOMP消息代理进行通信,以在语言和平台之间提供简单而广泛的消息互操作性(归纳一句话:是一个简单的面向文本的消息传递协议。)
学习资料:
					https://stomp-js.github.io/stomp-websocket/codo/class/Client.html#connect-dynamic
3、websocket广播、单播、组播介绍和使用场景说明	
	简介:
		主要讲解websocket的一些概念,如广播,单播等,他们的基本区别和使用场景
	笔记:
		单播(Unicast):
			点对点,私信私聊
广播(Broadcast)(所有人):
			游戏公告,发布订阅
多播,也叫组播(Multicast)(特地人群):
			多人聊天,发布订阅
4、广播技术应用 简单websocket游戏公告系统《一》
	简介:
		快速用springboot搭建一个web应用和maven相关依赖的引入
笔记:
		springboot框架搭建和maven依赖
		资料地址:https://spring.io/guides/gs/messaging-stomp-websocket/
5、游戏公告系统里maven依赖包webjars使用介绍
	简介:介绍什么是webjars,为什么使用这个maven依赖包,解决我们的什么问题
笔记:
		1、方便统一管理
		2、主要解决前端框架版本不一致,文件混乱等问题
		3、把前端资源,打包成jar包,借助maven工具进行管理
6、广播技术应用 简单websocket游戏公告系统《二》
	简介:
		springBoot里面websocket的配置类讲解,接口开发,页面模板套用
笔记:
		页面访问路径:localhost:8080/v1/index.html
7、websocket游戏公告系统流程详解
	简介:
		公告系统里面的相关socketjs和stompjs API介绍和流程讲解
8、websocket推送两种推送方法的区别和讲解 
	简介:
		讲解websocket推送方式:@SendTo注解和SimpMessagingTemplate的区别
笔记:	
		1、SendTo 不通用,固定发送给指定的订阅者
		2、SimpMessagingTemplate 灵活,支持多种发送方式
9、Springboot针对websocket 4类的监听器介绍和使用 
	简介:
		SpringBoot里面websocekt监听器的使用,包含订阅、取消订阅,socekt连接和断开连接4类监听器的编写和使用
笔记:
		注意点:
			1、需要监听器类需要实现接口ApplicationListener<T> T表示事件类型,下列几种都是对应的websocket事件类型
			2、在监听器类上注解 @Component,spring会把改类纳入管理
websocket模块监听器类型:
			SessionSubscribeEvent 	订阅事件
			SessionUnsubscribeEvent	取消订阅事件
			SessionDisconnectEvent 	断开连接事件
			SessionDisconnectEvent 	建立连接事件
10、点对点聊天和简单消息头介绍
	简介:
		使用socketjs订阅API,进行点对点聊天;StompHeaderAccessor简单介绍
	笔记:
11、websocket结合springboot定时推送,实时监控JVM系统负载
	简介:
		websocket结合springboot的注解Scheduled实现定时推送,使用服务端定时推送注意事项;
		开发简单监控JVM监控功能
笔记:
		1、在controller的类方法上标注 @Scheduled(fixedRate = 3000) 表示这个方法会定时执行
		fixedRate表示是多少毫秒 3000就3秒
2、需要在springboot启动类上@EnableScheduling
3、被注解@Scheduled标记的方法,是不能有参数,不然会报错
12、项目应用之股票行情推送实战《一》 效果展示,阿里云API介绍和httpClient工具类使用
	简介:
		展示简单股票行情推送的效果,及介绍阿里云API市场,httpClient工具类的使用
笔记:
		访问地址:localhost:8080/v5/index.html
		阿里云API市场: https://market.aliyun.com/data?spm=5176.8142029.388261.183.346bc16fAs3slP
		HttpClientUtils下载: https://github.com/aliyun/api-gateway-demo-sign-java
13、项目应用之股票行情推送实战《二》
	简介:相关接口开发,页面展示对接
笔记:
		推送接口开发和页面展示
		纠错: 只进行推送的controller不用加 
		“@MessageMapping”注解,@MessageMapping是用于客户端发送数据到服务端的路由配置
14、websocket结合spring相关拦截器使用 拦截器介绍,及HandshakeInterceptor握手拦截器介绍
	简介:
		拦截器介绍,springBoot结合websocket相关拦截器使用,握手拦截器的开发和使用
笔记:
		1、编写一个类,实现一个接口HandshakeInterceptor;写完之后需要在websocket配置里面启用
		.addInterceptors(new HttpHandShakeIntecepter())
2、实现两个方法beforeHandshake和afterHandshake,在里面可以获取resuest和response
15、综合项目实战多人聊天系统
	简介:
		结合前面的课程知识点,开发个综合项目实战,包含的功能模块:用户登录,实时在线用户推送,群聊等
16、用户在线状态维护功能介绍和登录API开发
	简介:
		用户状态功能相关接口开发和登录API接口开发
17、spring channel拦截器介绍及用户上线下线功能开发
	简介:
		channel频道拦截器使用讲解,结合StompHeaderAccessor实现用户上线下线功能
	笔记:
		1、ChannelInterceptorAdapter 频道拦截器适配器,具体实现的接口是ChannelIntecepter
2、需要ChannelInterceptorAdapter子类重写override对应的方法,实现自己的逻辑,主要是
		public void postSend(Message<?> message, MessageChannel channel, boolean sent)
3、ChannelInterceptorAdapter子类需要在配置Websocket的配置里面加入
4、在配置类里面加入
			@Override
			public void configureClientInboundChannel(ChannelRegistration registration) {
				registration.interceptors( new SocketChannelIntecepter());
			}
@Override
			public void configureClientOutboundChannel(ChannelRegistration registration) {
				registration.interceptors( new SocketChannelIntecepter());
			}
资料:
		https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/messaging/support/ChannelInterceptorAdapter.html
18、实时推送在线用户功能开发
	简介:使用schdule注解,推送在线用户接口开发
19、多人群聊功能开发
	简介:群聊topic订阅,页面调试功能开发
20、nginx反向代理websocket配置
	简介:
		nginx配置websocket协议和多节点集群,相关问题和解决方案
笔记:
		1、为什么用nginx,支持高并发,解决多节点部署,充当负载均衡使用
		2、用 ip_hash 进行分发到固定后端服务器
		3、nginx配置文件里面需要增加下面的配置还有对应的map映射
		 proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection $connection_upgrade;
更多资料请参考
https://www.xdclass.net/#/coursecatalogue?video_id=1
https://ke.qq.com/course/274853
更多分享,请关注我们

Websocket教程SpringBoot+Maven整合(详情)的更多相关文章
- Websocket教程SpringBoot+Maven整合
		1.大话websocket及课程介绍 简介: websocket介绍.使用场景分享.学习课程需要什么基础 2.课程技术选型和浏览器兼容讲解 简介: 简单介绍什么是springboot.socketjs ... 
- springboot+maven整合spring security
		springboot+maven整合spring security已经做了两次了,然而还是不太熟悉,这里针对后台简单记录一下需要做哪些事情,具体的步骤怎么操作网上都有,不再赘述.1.pom.xml中添 ... 
- SpringBoot进阶教程(七十三)整合elasticsearch
		Elasticsearch 是一个分布式.高扩展.高实时的搜索与数据分析引擎.它能很方便的使大量数据具有搜索.分析和探索的能力.充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更 ... 
- springBoot 官方整合的redis 使用教程:(StringRedisTemplate 方式存储 Object类型value)
		前言:最近新项目准备用 redis 简单的缓存 一些查询信息,以便第二次查询效率高一点. 项目框架:springBoot.java.maven 说明:edis存储的数据类型,key一般都是Strin ... 
- SpringBoot  Maven多模块整合MyBatis 打包jar
		最近公司开始新的项目,框架选定为SpringBoot+Mybatis,本篇主要记录了在IDEA中搭建SpringBoot多模块项目的过程. 源码:https://github.com/12641561 ... 
- springboot+layui 整合百度富文本编辑器ueditor入门使用教程(踩过的坑)
		springboot+layui 整合百度富文本编辑器ueditor入门使用教程(踩过的坑) 写在前面:  富文本编辑器,Multi-function Text Editor, 简称 MTE, 是一 ... 
- SpringBoot Kafka 整合集成 示例教程
		1.使用IDEA新建工程,创建工程 springboot-kafka-producer 工程pom.xml文件添加如下依赖: <!-- 添加 kafka 依赖 --> <depend ... 
- SpringBoot ---yml 整合 Druid(1.1.23) 数据源
		SpringBoot ---yml 整合 Druid(1.1.23) 数据源 搜了一下,网络上有在配置类写 @Bean 配置的,也有 yml 配置的. 笔者尝试过用配置类配置 @Bean 的方法,结果 ... 
- 学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用
		学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用 一.SpringBoot系列教程 二.SpringBoot ... 
随机推荐
- ios 容错处理AvoidCrash
			程序因为很多原因容易出现崩溃问题,比如数组越界.空字符串等造成的崩溃 // 在AppDelegate 写如下代码 初始化防止程序因数组和字符串等崩溃问题 //初始化 AvoidCrash (常用对象防 ... 
- Anywhere 随启随用的静态文件服务器
			三江建材官网项目 写nodeJs系列的文章都是因为这一个项目 第一天,搭建项目环境 记录心情: 首先,在写这个项目的时候,我很无助,只是拿到了设计稿,还有一个指导人,平常会很忙,只有在休闲的时候才能动 ... 
- springMVC  form表单提交多个对象集合--使用ajax提交--前台json格式数据封装方法
			(function ($) { $.fn.serializeJson = function () { var jsonData1 = {}; var serializeArray = this.ser ... 
- C# String.Format方法
			一.定义String.Format是将指定的 String类型的数据中的每个格式项替换为相应对象的值的文本等效项. 如: (1)string p1 = "Jackie";strin ... 
- CentOS Linux解决Device eth0 does not seem to be present【转】
			在VMware里克隆出来的CentOS Linux,ifconfig...没有看到eth0,然后重启网卡又报下面错误. 故障现象: service network restartShutting do ... 
- 机器学习框架ML.NET学习笔记【4】多元分类之手写数字识别
			一.问题与解决方案 通过多元分类算法进行手写数字识别,手写数字的图片分辨率为8*8的灰度图片.已经预先进行过处理,读取了各像素点的灰度值,并进行了标记. 其中第0列是序号(不参与运算).1-64列是像 ... 
- Java排序算法(二)
			java排序算法(二) 二.改进排序算法 2.1希尔排序 定义:希尔排序(ShellSort)是插入排序的一种.也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法. ... 
- python中*args, **kwargs理解
			先来看个例子: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '----------- ... 
- 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "XXXView" nib but the view outlet was not set.' 崩溃问题
			先说下我遇到这个崩溃问题的原因: 自定义的Viewxib和系统的 View重名,导致崩溃 我的理解是我这里加载YJLoginViewController 的时候,YJLoginViewControll ... 
- JAVA中的多态概念
			多态性是指同一操作作用于某一类对象,可以有不同的解释,产生不同的执行结果. 多态存在的三个必要条件 需要存在继承和实现关系 同样的方法调用而执行不同操作,运行不同代码. 在运行时父类或者接口的引用变量 ... 
