隻要伺服器端有了新資料,服務端就可以直接将資料推送給浏覽器,讓浏覽器顯示最新的狀态。WebSocket 規範己經相當成熟,而且各種主流浏覽器(如Firefox 、Chrome 、Safari 、Opera 等)都己經支援Web Socket 技術, Java EE 規範則提供了Web Socket 服務端規範,而Tomcat 8.5 則對該規範提供了優秀的實作。使用Tomca t 8.5 開發Web Socket 服務端非常簡單,大緻有如下兩種方式。

開發被@ServerEndpoint 修飾的Java 類之後,該類中還可以定義如下方法。
案例
下面将基于WebSocket 開發一個多人實時聊天的程式,該程式的思路很簡單一一在這個程式中,每個客戶所用的浏覽器都與伺服器建立一個WebSocket ,進而保持實時連接配接,這樣用戶端的浏覽器可以随時把資料發送到伺服器端:當伺服器收到任何一個浏覽器發送來的消息之後, 将該消息依次向每個用戶端浏覽器發送一遍。圖2 .54 顯示了基于WebSocket 的多人實時聊天示意圖。
為了實作圖2.54 所示的示意圖,按如下步驟開發Web Socket 服務端程式即可。
上面程式中第一行粗體字代碼建立了一個WebSocket 對象(WebSocket 是HTML 5 規範新增的類),建立對象時指定WebSocket 服務端的位址。一旦程式得到了WebSocket 對象, 接下來程式即可調用WebSocket 的send方法向伺服器發送消息。除此之外, 還可以為WebS ocket 綁定如下三個事件處理函數。
該ChatEntpoint 類并不是真正的Web Socket 服務端,它隻實作了Web Socket 服務端的核心功能, Tomcat 會調用它的方法作為WebSocket 服務端。是以, Tomcat 會為每個We bSocket 用戶端建立一個ChatEntpoint 對象,也就是說,有一個Web Socket 用戶端,程式就有一個ChatEntpoint 對象。是以上面程式中clientSet 集合儲存了多個ChatEntpoint 對象,其中每個ChatEndpoint 對象對應一個WebSocket 用戶端。