最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java?WebSocket?服務(wù)端實(shí)現(xiàn)代碼

 更新時(shí)間:2022年02月16日 16:03:34   作者:m17054598469  
WebSocket協(xié)議是基于TCP的一種新的網(wǎng)絡(luò)協(xié)議。它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工(full-duplex)通信——允許服務(wù)器主動(dòng)發(fā)送信息給客戶(hù)端,這篇文章主要介紹了java?WebSocket?服務(wù)端代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1.什么是WebSocket

  WebSocket協(xié)議是基于TCP的一種新的網(wǎng)絡(luò)協(xié)議。它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工(full-duplex)通信——允許服務(wù)器主動(dòng)發(fā)送信息給客戶(hù)端。

2.實(shí)現(xiàn)原理

  在實(shí)現(xiàn)websocket連線過(guò)程中,需要通過(guò)瀏覽器發(fā)出websocket連線請(qǐng)求,然后服務(wù)器發(fā)出回應(yīng),這個(gè)過(guò)程通常稱(chēng)為“握手” 。在 WebSocket API,瀏覽器和服務(wù)器只需要做一個(gè)握手的動(dòng)作,然后,瀏覽器和服務(wù)器之間就形成了一條快速通道。兩者之間就直接可以數(shù)據(jù)互相傳送?!?/p>

                     

3.優(yōu)點(diǎn)

  在以前的消息推送機(jī)制中,用的都是 Ajax 輪詢(xún)(polling),在特定的時(shí)間間隔由瀏覽器自動(dòng)發(fā)出請(qǐng)求,將服務(wù)器的消息主動(dòng)的拉回來(lái),這種方式是非常消耗資源的,因?yàn)樗举|(zhì)還是http請(qǐng)求,而且顯得非常笨拙。而WebSocket 在瀏覽器和服務(wù)器完成一個(gè)握手的動(dòng)作,在建立連接之后,服務(wù)器可以主動(dòng)傳送數(shù)據(jù)給客戶(hù)端,客戶(hù)端也可以隨時(shí)向服務(wù)器發(fā)送數(shù)據(jù)。

具體代碼如下所示:

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;
/**
 * 說(shuō)明:websocket服務(wù)端
 * 作者: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);
    /**
     * 客戶(hù)端發(fā)送消息到服務(wù)器時(shí)觸發(fā)事件
     */
    @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());//向所有在線用戶(hù)發(fā)送消息
        }
    public void onFragment( WebSocket conn, Framedata fragment ) {
    
     * 用戶(hù)加入處理
     * @param user
    public void userjoin(String user, WebSocket conn){
        BulletChatServerPlool.addUser(user,conn);                            //向連接池添加當(dāng)前的連接對(duì)象
     * 用戶(hù)下線處理
    public void userLeave(WebSocket conn){
        BulletChatServerPlool.removeUser(conn);                                 //在連接池中移除連接
     * 觸發(fā)連接事件
    public void onOpen( WebSocket conn, ClientHandshake handshake ) {}
     * 觸發(fā)關(guān)閉事件
    public void onClose( WebSocket conn, int code, String reason, boolean remote ) {
        userLeave(conn);
     * 觸發(fā)異常事件
    public void onError( WebSocket conn, Exception ex ) {
        if( conn != null ) {}
    public void onStart() {}
}

------------------------------------------------------------------自定義表單
28. 定義模版:拖拽左側(cè)表單元素到右側(cè)區(qū)域,編輯表單元素,保存表單模版
29. 表單模版:編輯維護(hù)表單模版,復(fù)制表單模版,修改模版類(lèi)型,預(yù)覽表單模版
30. 我的表單:選擇表單模版,編輯表單規(guī)則,是否上傳圖片、附件、開(kāi)啟富文本、掛靠流程開(kāi)關(guān)等
31. 表單數(shù)據(jù):從我的表單進(jìn)去可增刪改查表單數(shù)據(jù),修改表單規(guī)則
32. 掛靠記錄:記錄表單數(shù)據(jù)和流程實(shí)例ID關(guān)聯(lián)記錄,可刪除

到此這篇關(guān)于java WebSocket 服務(wù)端代碼的文章就介紹到這了,更多相關(guān)java WebSocket 服務(wù)端內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IntelliJ IDEA2020.3詳細(xì)安裝教程

    IntelliJ IDEA2020.3詳細(xì)安裝教程

    這篇文章主要介紹了IntelliJ IDEA2020.3詳細(xì)安裝教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Java由淺入深通關(guān)抽象類(lèi)與接口上

    Java由淺入深通關(guān)抽象類(lèi)與接口上

    在類(lèi)中沒(méi)有包含足夠的信息來(lái)描繪一個(gè)具體的對(duì)象,這樣的類(lèi)稱(chēng)為抽象類(lèi),接口是Java中最重要的概念之一,它可以被理解為一種特殊的類(lèi),不同的是接口的成員沒(méi)有執(zhí)行體,是由全局常量和公共的抽象方法所組成,本文給大家介紹Java抽象類(lèi)和接口,感興趣的朋友一起看看吧
    2022-04-04
  • 淺析JVM垃圾回收的過(guò)程

    淺析JVM垃圾回收的過(guò)程

    這篇文章主要介紹了JVM垃圾回收的過(guò)程,幫助大家更好的理解和學(xué)習(xí)Java中的垃圾回收機(jī)制,感興趣的朋友可以了解下
    2020-09-09
  • springdata jpa單表操作crud的實(shí)例代碼詳解

    springdata jpa單表操作crud的實(shí)例代碼詳解

    這篇文章主要介紹了springdata jpa單表操作crud的實(shí)例代碼詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • java實(shí)現(xiàn)坦克大戰(zhàn)小游戲

    java實(shí)現(xiàn)坦克大戰(zhàn)小游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)坦克大戰(zhàn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • 打包部署若依(RuoYi)SpringBoot后端和Vue前端圖文教程

    打包部署若依(RuoYi)SpringBoot后端和Vue前端圖文教程

    若依是一個(gè)使用Spring Boot作為后端和Vue.js作為前端的全棧應(yīng)用開(kāi)發(fā)平臺(tái),下面這篇文章主要給大家介紹了關(guān)于打包部署若依(RuoYi)SpringBoot后端和Vue前端的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • 分享Java開(kāi)發(fā)必須掌握的日志分析命令

    分享Java開(kāi)發(fā)必須掌握的日志分析命令

    這篇文章主要介紹了分享Java開(kāi)發(fā)必須掌握的日志分析命令,在日常工作中,如果我們遇到線上問(wèn)題,一般的處理步驟應(yīng)該是先保留現(xiàn)場(chǎng),然后再考慮回滾,之后再是解決問(wèn)題
    2019-07-07
  • idea 實(shí)現(xiàn)搜索jdk中的類(lèi)和包操作

    idea 實(shí)現(xiàn)搜索jdk中的類(lèi)和包操作

    這篇文章主要介紹了idea 實(shí)現(xiàn)搜索jdk中的類(lèi)和包操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • 如何基于springboot-admin實(shí)現(xiàn)后臺(tái)監(jiān)控

    如何基于springboot-admin實(shí)現(xiàn)后臺(tái)監(jiān)控

    這篇文章主要介紹了如何基于springboot-admin實(shí)現(xiàn)后臺(tái)監(jiān)控,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • SpringBoot導(dǎo)出Excel的四種方式小結(jié)

    SpringBoot導(dǎo)出Excel的四種方式小結(jié)

    近期接到了一個(gè)小需求,要將系統(tǒng)中的數(shù)據(jù)導(dǎo)出為Excel,且能將Excel數(shù)據(jù)導(dǎo)入到系統(tǒng),對(duì)于大多數(shù)研發(fā)人員來(lái)說(shuō),這算是一個(gè)最基本的操作了,本文就給大家總結(jié)一下SpringBoot導(dǎo)出Excel的四種實(shí)現(xiàn)方式,需要的朋友可以參考下
    2024-12-12

最新評(píng)論

建水县| 美姑县| 平顺县| 寿阳县| 二手房| 广宗县| 东至县| 民丰县| 裕民县| 阳原县| 沙洋县| 乃东县| 青铜峡市| 松潘县| 金川县| 凤庆县| 沁水县| 威宁| 旅游| 杭锦旗| 彩票| 礼泉县| 武宣县| 海丰县| 米泉市| 安岳县| 沂源县| 峨山| 湛江市| 濮阳县| 鱼台县| 玉山县| 兴安盟| 德庆县| 轮台县| 台前县| 扎兰屯市| 类乌齐县| 喜德县| 家居| 钟祥市|