webSocket(一)

本文详细介绍了WebSocket协议及其在浏览器与服务器通信中的应用,包括弹幕、聊天和股票行情推送等场景。接着,解释了SockJS如何作为WebSocket的浏览器兼容解决方案,以及STOMP协议在消息传递中的作用。同时,探讨了如何检查浏览器是否支持WebSocket,以及WebSocket的单播、广播和多播模式。在SpringBoot环境下,讨论了WebSocket的推送方法,如@SendTo和SimpMessagingTemplate的区别,以及SessionSubscribeEvent等监听器。此外,还涉及了WebSocket结合Spring的拦截器使用和实现实时监控JVM负载的示例。最后,提到了WebSocket在多人聊天应用中的综合实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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()在消息被实际发送到频道之前调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值