溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java?WebSocket?服務端如何實現

發布時間:2022-02-17 09:10:59 來源:億速云 閱讀:368 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關java WebSocket 服務端如何實現的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

1.什么是WebSocket

  WebSocket協議是基于TCP的一種新的網絡協議。它實現了瀏覽器與服務器全雙工(full-duplex)通信——允許服務器主動發送信息給客戶端。

2.實現原理

  在實現websocket連線過程中,需要通過瀏覽器發出websocket連線請求,然后服務器發出回應,這個過程通常稱為“握手” 。在 WebSocket API,瀏覽器和服務器只需要做一個握手的動作,然后,瀏覽器和服務器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送?!?/p>

java?WebSocket?服務端如何實現

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 服務端如何實現”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女