java WebSocket 服務端實現代碼
1.什麼是WebSocket
WebSocket協議是基於TCP的一種新的網絡協議。它實現瞭瀏覽器與服務器全雙工(full-duplex)通信——允許服務器主動發送信息給客戶端。
2.實現原理
在實現websocket連線過程中,需要通過瀏覽器發出websocket連線請求,然後服務器發出回應,這個過程通常稱為“握手” 。在 WebSocket API,瀏覽器和服務器隻需要做一個握手的動作,然後,瀏覽器和服務器之間就形成瞭一條快速通道。兩者之間就直接可以數據互相傳送。
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 服務端代碼的文章就介紹到這瞭,更多相關java WebSocket 服務端內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 教你怎麼使用Java實現WebSocket
- golang實現一個簡單的websocket聊天室功能
- springboot整合websocket最基礎入門使用教程詳解
- Spring Cloud微服務使用webSocket的方法
- IOS之WebSocket框架Starscream案例詳解