深入理解WebSocket 實現(xiàn)數(shù)據(jù)實時刷新

一、概述

WebSocket 是HTML5的一個新協(xié)議,WebSocket 使得客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡單,允許服務(wù)端主動向客戶端推送數(shù)據(jù)。在 WebSocket API 中,瀏覽器和服務(wù)器只需要完成一次握手,兩者之間就直接可以創(chuàng)建持久性的連接,并進(jìn)行雙向數(shù)據(jù)傳輸。

二、WebSocket的應(yīng)用場景

社交聊天、彈幕、多玩家游戲、協(xié)同編輯、股票基金實時報價、體育實況更新、視頻會議/聊天、基于位置的應(yīng)用、在線教育、智能家居等需要高實時的場景

三、實現(xiàn)

3.1、WebsocketInterceptor

建立鏈接時,websocketInteceptor對封裝在WebsocketSession進(jìn)行處理,用于初始化用戶信息。(當(dāng)客戶端與服務(wù)器端握手之前之前執(zhí)行的方法)

HttpSession session = request1.getSession(false);

ip = IpUtil.getIpAddr(request1);

if(session !=null){

WebsocketSessionUtil.initUser(session, attributes);

}

3.2、處理類:

Handler--建立連接,發(fā)送消息,關(guān)閉連接自動執(zhí)行,消息處理,在客戶端通過Websocket API發(fā)送的消息會經(jīng)過這里,然后進(jìn)行相應(yīng)的處理

3.3、執(zhí)行順序

WebsocketConfigNew(registerWebSocketHandlers)--》WebsocketInterceptor -》MyWebSocketHandler-》WebsocketSessionUtil

0 = "http://www.websocket-test.com"

1 = "http://localhost:9090"

2 = "http://0.0.0.0:9090"

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容