這篇文章給大家分享的是有關java WebSocket 服務端如何實現的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
1.什么是WebSocket
WebSocket協議是基于TCP的一種新的網絡協議。它實現了瀏覽器與服務器全雙工(full-duplex)通信——允許服務器主動發送信息給客戶端。
2.實現原理
在實現websocket連線過程中,需要通過瀏覽器發出websocket連線請求,然后服務器發出回應,這個過程通常稱為“握手” 。在 WebSocket API,瀏覽器和服務器只需要做一個握手的動作,然后,瀏覽器和服務器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送?!?/p>
3.優點
在以前的消息推送機制中,用的都是 Ajax 輪詢(polling),在特定的時間間隔由瀏覽器自動發出請求,將服務器的消息主動的拉回來,這種方式是非常消耗資源的,因為它本質還是http請求,而且顯得非常笨拙。而WebSocket 在瀏覽器和服務器完成一個握手的動作,在建立連接之后,服務器可以主動傳送數據給客戶端,客戶端也可以隨時向服務器發送數據。
具體代碼如下所示:
package org.fh.plugins.ChatServer; import java.net.InetSocketAddress; import java.net.UnknownHostException; import org.java_websocket.WebSocket; import org.java_websocket.framing.Framedata; import org.java_websocket.handshake.ClientHandshake; import org.java_websocket.server.WebSocketServer; /** * 說明:websocket服務端 * 作者:FH Admin * from:fhadmin.cn */ public class ChatServer extends WebSocketServer{ public BulletChatServer(int port) throws UnknownHostException { super(new InetSocketAddress(port)); } public BulletChatServer(InetSocketAddress address) { super(address); /** * 客戶端發送消息到服務器時觸發事件 */ @Override public void onMessage(WebSocket conn, String message){ message = message.toString(); if(null != message && message.startsWith("[video313596790]")){ this.userjoin(message.replaceFirst("\\[video313596790\\]", ""),conn); }else{ BulletChatServerPlool.sendMessage(message.toString());//向所有在線用戶發送消息 } public void onFragment( WebSocket conn, Framedata fragment ) { * 用戶加入處理 * @param user public void userjoin(String user, WebSocket conn){ BulletChatServerPlool.addUser(user,conn); //向連接池添加當前的連接對象 * 用戶下線處理 public void userLeave(WebSocket conn){ BulletChatServerPlool.removeUser(conn); //在連接池中移除連接 * 觸發連接事件 public void onOpen( WebSocket conn, ClientHandshake handshake ) {} * 觸發關閉事件 public void onClose( WebSocket conn, int code, String reason, boolean remote ) { userLeave(conn); * 觸發異常事件 public void onError( WebSocket conn, Exception ex ) { if( conn != null ) {} public void onStart() {} }
------------------------------------------------------------------自定義表單
28. 定義模版:拖拽左側表單元素到右側區域,編輯表單元素,保存表單模版
29. 表單模版:編輯維護表單模版,復制表單模版,修改模版類型,預覽表單模版
30. 我的表單:選擇表單模版,編輯表單規則,是否上傳圖片、附件、開啟富文本、掛靠流程開關等
31. 表單數據:從我的表單進去可增刪改查表單數據,修改表單規則
32. 掛靠記錄:記錄表單數據和流程實例ID關聯記錄,可刪除
感謝各位的閱讀!關于“java WebSocket 服務端如何實現”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。