持續輸出面試題之WebSocket

開篇介紹

你們好,我是Java最全面試題庫的提褲姐,今天這篇是分佈式技術的第五篇,主要介紹WebSocket;在後續,會沿着第一篇開篇的知識線路一直總結下去,作到日更!若是我能作到百日百更,但願你也能夠跟着百日百刷,一百天養成一個好習慣。java

什麼是websocket?

websocket是HTML5的一種新協議,容許服務器向客戶端傳遞信息,實現瀏覽器和客戶端雙工通訊。web

全雙工通信協議的概念

全雙工是通信傳輸的一個術語。通訊容許數據在兩個方向上同時傳輸,他在能力上至關於兩個單工通訊方式的結合。全雙工指能夠同時進行信號的雙向傳輸。面試

  • 全雙工:例如咱們使用的手機就是全雙工,在同一時刻兩個用戶能夠同時給對方傳送數據
  • 半雙工:例如咱們使用的對講機,當A方按住通話按鈕才能夠向B方傳送數據,B方也是,在同一時刻只有一個用戶可以傳送數據(A/用戶均可以傳遞信息,可是不可以同時傳遞)
  • 單工:例如咱們看電視時,咱們只能接收對方發送的信息,不可以給對方傳遞信息;

websocket有哪些特色?

  • 與http協議有良好的兼容性;
  • 創建在TCP協議之上,和http協議同屬於應用層;
  • 數據格式比較輕量,性能開銷小,通訊高效;
  • 能夠發送文本,也能夠發送二進制;
  • 沒有同源限制,能夠與任意服務器通訊。

http和websocket的區別?

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() 組合)websocket

服務端實時通訊有哪些方法?

一、AJAX輪詢
二、Long Polling長輪詢
三、WebSocketapp

websocket客戶端代碼?

// 建立一個webSocket對象
const ws = new WebSocket("ws://127.0.0.1:3000/websocket/test")
ws.onopen = e => {
  // 鏈接後監聽
  console.log("建立了websocket")
}

websocket應用場景?

一、社交訂閱
二、多玩家遊戲
三、協同編輯文檔
四、數據流狀態
五、多人聊天socket

相關文章
相關標籤/搜索