你们好,我是Java最全面试题库
的提裤姐,今天这篇是分布式技术的第五篇,主要介绍WebSocket;在后续,会沿着第一篇开篇的知识线路一直总结下去,作到日更!若是我能作到百日百更,但愿你也能够跟着百日百刷,一百天养成一个好习惯。java
websocket是HTML5的一种新协议,容许服务器向客户端传递信息,实现浏览器和客户端双工通讯。web
全双工是通信传输的一个术语。通讯容许数据在两个方向上同时传输,他在能力上至关于两个单工通讯方式的结合。全双工指能够同时进行信号的双向传输。面试
全双工
:例如咱们使用的手机就是全双工,在同一时刻两个用户能够同时给对方传送数据半双工
:例如咱们使用的对讲机,当A方按住通话按钮才能够向B方传送数据,B方也是,在同一时刻只有一个用户可以传送数据(A/用户均可以传递信息,可是不可以同时传递)单工
:例如咱们看电视时,咱们只能接收对方发送的信息,不可以给对方传递信息;http协议是短连接,由于请求以后,都会关闭链接,下次请求须要从新打开连接。
websocket协议是一种长链接,只须要经过一次请求来初始化链接,而后全部请求和响应都是经过TCP连接进行通讯。浏览器
socket是应用层与TCP/IP协议通讯的中间软件抽象层,它是一组接口。而websocket协议是一个完整的应用层协议,拥有一套完整的API。服务器
@ServerEndpoint :相似与servlet中的 RequestMapping
@OnOpen:相似与servlet中的 init()
初始化
@OnClose:相似与servlet中的destroy()
销毁
@OnMessage:相似于servlet中的service请求
(意思就是发送数据的方式 @doPost()
/ @doGet()
组合)websocket
一、AJAX轮询
二、Long Polling长轮询
三、WebSocketapp
// 建立一个webSocket对象 const ws = new WebSocket("ws://127.0.0.1:3000/websocket/test") ws.onopen = e => { // 链接后监听 console.log("建立了websocket") }
一、社交订阅
二、多玩家游戏
三、协同编辑文档
四、数据流状态
五、多人聊天socket