持续输出面试题之WebSocket
开篇介绍
大家好,我是Java最全面试题库
的提裤姐,今天这篇是分布式技术的第五篇,主要介绍WebSocket;在后续,会沿着第一篇开篇的知识线路一直总结下去,做到日更!如果我能做到百日百更,希望你也可以跟着百日百刷,一百天养成一个好习惯。
什么是websocket?
websocket是HTML5的一种新协议,允许服务器向客户端传递信息,实现浏览器和客户端双工通信。
全双工通讯协议的概念
全双工是通讯传输的一个术语。通信允许数据在两个方向上同时传输,他在能力上相当于两个单工通信方式的结合。全双工指可以同时进行信号的双向传输。
-
全双工
:例如我们使用的手机就是全双工,在同一时刻两个用户可以同时给对方传送数据 -
半双工
:例如我们使用的对讲机,当A方按住通话按钮才可以向B方传送数据,B方也是,在同一时刻只有一个用户能够传送数据(A/用户都可以传递信息,但是不能够同时传递) -
单工
:例如我们看电视时,我们只能接收对方发送的信息,不能够给对方传递信息;
- 与http协议有良好的兼容性;
- 建立在TCP协议之上,和http协议同属于应用层;
- 数据格式比较轻量,性能开销小,通信高效;
- 可以发送文本,也可以发送二进制;
- 没有同源限制,可以与任意服务器通信。
websocket协议是一种长连接,只需要通过一次请求来初始化连接,然后所有请求和响应都是通过TCP链接进行通信。
websocket和socket的区别? socket是应用层与TCP/IP协议通信的中间软件抽象层,它是一组接口。而websocket协议是一个完整的应用层协议,拥有一套完整的API。
WebSocket中的常用注解有哪些? @ServerEndpoint :类似与servlet中的 RequestMapping
@OnOpen:类似与servlet中的
init()
初始化@OnClose:类似与servlet中的
destroy()
销毁@OnMessage:类似于servlet中的
service请求
(意思就是发送数据的方式 @doPost()
/ @doGet()
组合)服务端实时通信有哪些方法? 1、AJAX轮询
2、Long Polling长轮询
3、WebSocket
websocket客户端代码?
// 创建一个webSocket对象
const ws = new WebSocket("ws://127.0.0.1:3000/websocket/test")
ws.onopen = e => {
// 连接后监听
console.log("创建了websocket")
}
websocket应用场景? 1、社交订阅
2、多玩家游戏
3、协同编辑文档
4、数据流状态
5、多人聊天
推荐阅读
- Node.js中readline模块实现终端输入
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 阿菘的ScalersTalk第五轮新概念朗读持续力训练Day15|阿菘的ScalersTalk第五轮新概念朗读持续力训练Day15 20191025
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- 戏文的女生绝不认输
- 学习基金第五课:认识巴菲特赌输了的指数基金|学习基金第五课:认识巴菲特赌输了的指数基金 2018-10-12
- 关系问句
- [白雪扇贝每日一句特训班]week5复盘——相信持续的力量
- 集体释放
- 我的爱情一败涂地,我竟然输给了自己