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/287785

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容

  • By:狼大王Lynn 这是一股非常强烈铆钉自我的能量。你可以在找到一个清晰的方向时,落实的去做并且全然的专注于当下...
    琳酱lynn阅读 409评论 0 0
  • 好多时候总感觉自己做为妈妈是不够称职的,没能耐给孩子足够的耐心和时间陪伴他。 有时候又很矛盾,怕自己...
    幸福的小秋阅读 173评论 0 0
  • 真是心急吃不了热豆腐。 刚闻《语记》,就以迅雷不及掩耳之势,下载使用。 懒人,不想做笔记,自然寄希望于《语记》。把...
    覃不可_静阅读 253评论 0 6
  • 感恩母亲,你能知道感恩母亲是什么意思吗?那我就给你们说吧,感恩母亲,就是,母亲为你操心,母亲为你洗衣,母亲为...
    郝从羽A阅读 470评论 0 3
  • 两个人的契合度是一步一步摩擦出来的吧,但是认真的人,总想,你要是多了解我一点那该多凑巧,我不会给彼此问答题,我希...
    treetree0218阅读 106评论 0 0