一、概述
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"