WebScoket | Java应用场景

一般我们需要实时查询数据时,会有两种方式实现。

一种是轮询,即页面定时向服务器发送请求查询数据,这种方式不太聪明的样子,这样做既不能做到实时查询,对服务器的压力又很大,浪费了带宽、内存、cpu等资源;
另一种是使用Socket,Socket是全双工通信,即A可以向B发送消息,也可以接收B的消息,B同上。一旦A、B通过tcp建立了通道,那么就可以自由发送数据,无需再建立通道。前端和服务器均有方法监听消息。Java中常用WebSocket进行通信,WebSocket是在Socket的基础上进行了封装。
常见应用场景:
1、聊天室
这个是最常见的了,一般文字、图片聊天室都是使用WebSocket进行数据传输,保证信息不丢失、不重复;语音和视频聊天一般使用udp协议的工具进行传输。
2、位置更新
一般我们对位置更新有时间要求的时候,通常会使用WebSocket更新位置信息,举个例子,我们在外卖平台看骑手位置,我个人觉得是使用了webSocket,骑手app监听骑手位置,当位置不变时,不向服务器发送位置更新信息,变化超过一定范围时,通知服务器,同时服务器使用WebSocket通知顾客骑手当前位置。
3、排行榜
一般对于实时性有要求的网站会使用WebSocket及时的更新榜单信息,比如今年的美国总统大选,肯定是要求前端界面和后端数据库实时同步的。
4、股票
这个不用解释,一旦数据库数据变化,但是前端的应用还是几个小时之前的数据,你就知道有多少人要跳楼了。
5、游戏对战
因为没做过大型的游戏,我猜测哈,部分游戏采用WebSocket来推送一个房间中各个玩家的状态。
6、终止登录状态
例如QQ,当有人登录了我们的账号,我们会及时收到通知,并被强制下线。同样的,当我们在后台设置某用户禁止登录,或者修改其密码后,当前登录者应立即下线。
7、数据直播
例如球赛的比分等。
以上是我对WebSocket的理解和常见场景的分析,我们需要分析业务功能是否需要实时性,是否能发挥WebSocket的特点,凡事不能一概而论,有什么其他的想法,欢迎加我QQ或者留言。

posted @ 2020-11-12 01:03  五香麻辣大白兔  阅读(653)  评论(0)    收藏  举报