一、webSocket是什么?
webSocket协议是基于TCP的一种新的协议,它实现了浏览器与服务器全双工通信,允许服务器主动发送信息给客户端。使用场景:弹幕,聊天,实时监控,股票行情推送。
形式为:ws://localhost:8080/index
二、socketjs是什么?
是一个浏览器javascript库,提供了一个类似WebSocket的对象,提供了一个连贯的跨浏览器的javascriptAPI,在浏览器和web服务器之间创建了一个低延迟,双全工,跨域的通信通道;在底层SockJS首先尝试使用本地WebSocket,如果失败了,它可以使用各种浏览器特定的传输协议,并通过类似WebSocket的抽象方式呈现他们,SockJS旨在适用于所有现代浏览器和不支持webSocket协议的环境。
三、stomjs是什么?协议
他定义了可互操作的连线格式,以便任何可用的stom客户端都可以与任何stom消息代理进行通信,以在语言和平台之间提供简单而广泛的消息互操作性,简单概括为是一个简单的面向文本的消息传递协议。
四、查看浏览器是否支持websocket
输入window.webSocket看是否报错。
五、websocket广播,单播,多播
单播unicast:点对点,私聊
广播broadcast:一对全部,游戏公告,发布订阅模式
多播、组播multicast:一对多
六、webjar使用基本介绍(前后端没有分离)
特点:1.方便统一管理,2.主要解决前端版本不一致,文件混乱等问题,3.把前端资源,打包成jar包,借助maven工具进行管理。
七、websocket推送方法讲解
@sendTo注解和SimpMessagingTemplate的区别
SendTo不通用,固定发送给指定的订阅者;
SimpMeaasgeTemplate灵活,支持多种发送方式
八、SessionSubscribeEvent事件监听器,监听订阅事件
Springboot监听器介绍和使用
需要监听器类需要实现接口ApplicationLister<T>T表示事件类型,下列几种都是对应的websocket事件类型;在监听器类上注解@Component,spring会把类纳入管理。
websocket模块监听器类型:
SessionSubscribeEvent 订阅事件
SessionUnsubscribeEvent 取消订阅事件
SessionDisconnectEvent 断开连接事件
SessionDisconnectEvent 建立连接事件
九、点对点聊天和简单消息头介绍
使用js订阅使用点对点聊天,StompHeaderAccessor介绍
十、websocket结合springboot定时推,实时监控jvm系统负载
1.在controll的类方法上标注@Scheduled(fixeRate=3000)表示这个方法会定时执行,fixedRate表示是多少毫秒,3000就是3秒。
2.需要在springboot启动类上@EnableScheduling
3.被注解Schedule标记的方法,是不能有参数,不然会报错。
十一、股票行情推送
阿里云api介绍-股票行情推送
httpClient工具类,模拟http或https请求,
@MessageMapping注解,是用于客户端发送数据到服务器的路由配置
十二、websocket结合spring相关拦截器使用
HandshakeInterceptor,http握手拦截器,可以通过这个类的方法获取request和response,获取到session和cookie。
编写一个类,实现一个接口HandshakeInterceptor
实现两个方法beforeHandshake和afterHandshake,在这里可以获取request和response。
十三、综合项目实战多人聊天
ChannelInterceptorAdapter类
afterSendCompleation()在完成发送之后调用,不管是否有异常发生,一般用于资源清理
postSend()发送消息之后立即调用
preSend()在消息被实际发送到频道之前调用