一想暗、為什么你們項(xiàng)目組中使用WebSocket技術(shù)
當(dāng)我們在處理頁面數(shù)據(jù)自動更新的時候妇汗,在使用js不斷的請求服務(wù)器,查看是否有新數(shù)據(jù)说莫,如果有就獲取到新數(shù)據(jù)杨箭,進(jìn)行對頁面信息的跟新,但是當(dāng)頁面長時間沒有更新數(shù)據(jù)時储狭,這樣就會存在資源浪費(fèi)的情況互婿,所以才會使用WebSocket來解決。
二辽狈、UDP和TCP協(xié)議的概念
TCP是事先為所發(fā)送的數(shù)據(jù)開辟出連接好的通道慈参,然后再進(jìn)行數(shù)據(jù)發(fā)送;而UDP則不為IP提供可靠性刮萌、流控或差錯恢復(fù)功能驮配。一般來說,TCP對應(yīng)的是可靠性要求高的應(yīng)用尊勿,而UDP對應(yīng)的則是可靠性要求低僧凤、傳輸經(jīng)濟(jì)的應(yīng)用。
三元扔、什么是WebSocket
WebSocket是HTML5一種新的協(xié)議躯保,WebSocket是真正實(shí)現(xiàn)了全雙工通信的服務(wù)器向客戶端推的互聯(lián)網(wǎng)技術(shù),是一種在單個TCP連接上進(jìn)行全雙工通訊協(xié)議澎语。
四途事、WebSocket的特點(diǎn)
(1)與http協(xié)議有良好的兼容性;
(2)建立在TCP協(xié)議之上擅羞,和http協(xié)議同屬于應(yīng)用層尸变;
(3)數(shù)據(jù)格式比較輕量,性能開銷小减俏,通信高效召烂;
(4)可以發(fā)送文本,也可以發(fā)送二進(jìn)制娃承;
(5)沒有同源限制奏夫,可以與任意服務(wù)器通信怕篷。
五、全雙工通訊協(xié)議的概念酗昼?
全雙工是通訊傳輸?shù)囊粋€術(shù)語廊谓。通信允許數(shù)據(jù)在兩個方向上同時傳輸,他在能力上相當(dāng)于兩個單工通信方式的結(jié)合麻削。全雙工指可以同時進(jìn)行信號的雙向傳輸蒸痹。
全雙工是:例如我們使用的手機(jī)就是全雙工,在同一時刻兩個用戶可以同時給對方傳送數(shù)據(jù)
半雙工:例如我們使用的對講機(jī)呛哟,當(dāng)A方按住通話按鈕才可以向B方傳送數(shù)據(jù)叠荠,B方也是,在同一時刻只有一個用戶能夠傳送數(shù)據(jù)(A/用戶都可以傳遞信息扫责,但是不能夠同時傳遞)
單工:例如我們看電視時蝙叛,我們只能接收對方發(fā)送的信息,不能夠給對方傳遞信息公给;
六、WebSocket和Socket的區(qū)別是什么蜘渣?
Socket是應(yīng)用層與TCP/IP協(xié)議通信的中間軟件抽象層淌铐,它是一組接口。而WebSocket則不同蔫缸,它是一個完整的應(yīng)用層協(xié)議腿准,包含一套標(biāo)準(zhǔn)的API。
七拾碌、Http與WebSocket的區(qū)別吐葱?
http協(xié)議是短鏈接,因?yàn)檎埱笾笮O瑁紩P(guān)閉連接弟跑,下次重新請求數(shù)據(jù),需要再次打開連接防症。WebSocket協(xié)議是一種長連接孟辑,只需要通過一次請求來初始化鏈接,然后所有的請求和響應(yīng)都是通過這個TCP鏈接進(jìn)行通信蔫敲。
八饲嗽、WebSocket中的常用注解有哪些?
@ServerEndpoint 類似與servlet中的 RequestMapping
@OnOpen類似與servlet中的 init()初始化
@OnClose類似與servlet中的destroy() 銷毀
@OnMessage類似于servlet中的service請求 (意思就是發(fā)送數(shù)據(jù)的方式 @doPost() / @doGet() 組合)*