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

SpringBoot 整合WebSocket 前端 uniapp 訪問(wèn)的詳細(xì)方法

 更新時(shí)間:2023年09月02日 15:47:40   作者:tengyuxin  
這篇文章主要介紹了SpringBoot 整合WebSocket 前端 uniapp 訪問(wèn)的詳細(xì)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

第一次使用WebSocket,所以最需要一個(gè)及其簡(jiǎn)單的例子,跑通之后,增加自己對(duì)該技術(shù)的理解。(技術(shù)基礎(chǔ)介紹就免掉了,后面再補(bǔ))

 案例邏輯:目前只有一個(gè)用戶,而且是一個(gè)用戶給服務(wù)器發(fā)送數(shù)據(jù),服務(wù)給該用戶返回?cái)?shù)據(jù)

一、SpringBoot 整合 WebSocket

此處的邏輯一共三步

第一步,添加依賴項(xiàng)

第二步,添加配置

第三,寫基礎(chǔ)服務(wù)類

 1. 添加websocket依賴

  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
            <!--需要版本的自己加-->
  </dependency>

2. 添加配置

@Configuration
public class WebSocketConfig {
    /**
     * ServerEndpointExporter 作用
     *
     * 這個(gè)Bean會(huì)自動(dòng)注冊(cè)使用@ServerEndpoint注解聲明的websocket endpoint
     *
     * @return
     */
    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }
}

3. 基礎(chǔ)服務(wù)工具類

 
@ServerEndpoint(value = "/ws/{userId}")
@Component
@Slf4j
public class WebSocketServer {
    private String userId;
    /**
     * @param session 是webSocket的會(huì)話對(duì)象,不是瀏覽器那個(gè)session
     * @param userId  用戶Id
     * @description 當(dāng)連接建立成功調(diào)用
     **/
    @OnOpen
    public void onOpen(Session session, @PathParam("userId") String userId) {
        this.userId = userId;
        System.out.println("建立連接");
    }
    /**
     * @param session 會(huì)話對(duì)象
     * @description 當(dāng)連接關(guān)閉調(diào)用
     **/
    @OnClose
    public void onClose(Session session) throws IOException {
        System.out.println("關(guān)閉連接");
    }
    /**
     * @param message 客戶端發(fā)送的消息
     * @param session 會(huì)話對(duì)象
     * @description 當(dāng)客戶端發(fā)送消息時(shí)調(diào)用
     **/
    @OnMessage
    public void onMessage(String message, Session session) throws IOException {
        try{
            System.out.println(message);
           //給客戶端發(fā)送消息
            session.getBasicRemote().sendText("服務(wù)端定義的消息");
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

二、uniapp 構(gòu)建webSocket與服務(wù)器通信

前端邏輯

第一步:跟服務(wù)器建立連接

第二步:監(jiān)聽(tīng)WebSocket連接打開(kāi)事件,并在這個(gè)監(jiān)聽(tīng)事件中,主動(dòng)給服務(wù)端發(fā)送數(shù)據(jù)

第三步:監(jiān)聽(tīng)WebSocket接受到服務(wù)器的消息事件(你給服務(wù)器發(fā)送消息時(shí),它也會(huì)及時(shí)給前端返回?cái)?shù)據(jù))

1. 具體代碼

 
function webSocketFun(Integer userId){
    //1. 通過(guò)用戶唯一id 與 服務(wù)端webSocket建立連接
    uni.connectSocket({
	    url: `http://192.168.2.18:8080/ws/${userId}`
    });
    //2. 監(jiān)聽(tīng)WebSocket連接打開(kāi)事件,并給服務(wù)端發(fā)送消息
    var socketOpen = false;
	var socketMsgQueue = ["滕","禹","鑫"];
    uni.onSocketOpen(function (res) {
		console.log('WebSocket連接已打開(kāi)');
		socketOpen = true;
		for (var i = 0; i < socketMsgQueue.length; i++) {
			sendSocketMessage(socketMsgQueue[i]);
		}
		socketMsgQueue = [];
	});
	function sendSocketMessage(msg) {
	  if (socketOpen) {
	    uni.sendSocketMessage({
	      data: msg
	    });
	  } else {
	    socketMsgQueue.push(msg);
	  }
	}
    //3. 監(jiān)聽(tīng)WebSocket接受到服務(wù)器的消息事件
    uni.onSocketMessage(function (res) {
	  console.log('收到服務(wù)器返回的內(nèi)容為 ======' + res.data);
	});
}
 

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

相關(guān)文章

  • Spring中@Lazy注解的使用示例教程

    Spring中@Lazy注解的使用示例教程

    Spring在應(yīng)用程序上下文啟動(dòng)時(shí)去創(chuàng)建所有的單例bean對(duì)象, 而@Lazy注解可以延遲加載bean對(duì)象,即在使用時(shí)才去初始化,這篇文章主要介紹了Spring中@Lazy注解的使用,需要的朋友可以參考下
    2023-06-06
  • SpringBoot集成jjwt和使用方式

    SpringBoot集成jjwt和使用方式

    本文詳細(xì)介紹了JWT依賴(以jjwt為例)的引入和使用方法,首先,需要在項(xiàng)目中引入jwt依賴,隨后在Spring的啟動(dòng)類application.yml中進(jìn)行相應(yīng)配置,最后,提供了一份完整的jwt工具類代碼,供讀者直接使用,以上內(nèi)容便是作者的個(gè)人經(jīng)驗(yàn)分享,期望能為讀者提供參考并得到支持
    2024-10-10
  • SpringBoot讀取Resource目錄下文件的四種方式總結(jié)

    SpringBoot讀取Resource目錄下文件的四種方式總結(jié)

    在Spring?Boot項(xiàng)目中,經(jīng)常需要獲取resources目錄下的文件,這些文件可以包括配置文件、模板文件、靜態(tài)資源等,本文將介紹四種常用的方法來(lái)獲取resources目錄下的文件,需要的朋友可以參考下
    2023-08-08
  • SpringBoot3整合Hutool-captcha實(shí)現(xiàn)圖形驗(yàn)證碼

    SpringBoot3整合Hutool-captcha實(shí)現(xiàn)圖形驗(yàn)證碼

    在整合技術(shù)框架的時(shí)候,想找一個(gè)圖形驗(yàn)證碼相關(guān)的框架,看到很多驗(yàn)證碼的maven庫(kù)不再更新了或中央倉(cāng)庫(kù)下載不下來(lái),還需要多引入依賴,后面看到了Hutool圖形驗(yàn)證碼(Hutool-captcha)中對(duì)驗(yàn)證碼的實(shí)現(xiàn),所以本文介紹了SpringBoot3整合Hutool-captcha實(shí)現(xiàn)圖形驗(yàn)證碼
    2024-11-11
  • Java并發(fā)應(yīng)用之任務(wù)執(zhí)行分析

    Java并發(fā)應(yīng)用之任務(wù)執(zhí)行分析

    這篇文章主要為大家詳細(xì)介紹了JavaJava并發(fā)應(yīng)用編程中任務(wù)執(zhí)行分析的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-07-07
  • Java實(shí)現(xiàn)經(jīng)典游戲俄羅斯方塊(升級(jí)版)的示例代碼

    Java實(shí)現(xiàn)經(jīng)典游戲俄羅斯方塊(升級(jí)版)的示例代碼

    俄羅斯方塊是一款風(fēng)靡全球,從一開(kāi)始到現(xiàn)在都一直經(jīng)久不衰的電腦、手機(jī)、掌上游戲機(jī)產(chǎn)品,是一款游戲規(guī)則簡(jiǎn)單,但又不缺乏樂(lè)趣的簡(jiǎn)單經(jīng)典小游戲。本文將用Java語(yǔ)言實(shí)現(xiàn)這一經(jīng)典游戲,需要的可以參考一下
    2022-09-09
  • IDEA自定義Maven archetype的方法步驟

    IDEA自定義Maven archetype的方法步驟

    在創(chuàng)建Maven的項(xiàng)目時(shí)我們發(fā)現(xiàn)了一個(gè)很不方便的問(wèn)題,就是每次創(chuàng)建Maven的工程的時(shí)候,都需要選擇一個(gè)骨架,本文主要介紹了IDEA自定義Maven archetype的方法步驟,感興趣的可以了解一下
    2022-03-03
  • Java中的equsals和==

    Java中的equsals和==

    這篇文章主要介紹了Java中的equsals和==的相關(guān)內(nèi)容,感興趣的朋朋友可以參考下文
    2021-08-08
  • Java中this()與super()的用法區(qū)別解析

    Java中this()與super()的用法區(qū)別解析

    this()調(diào)用本類構(gòu)造函數(shù)復(fù)用代碼,super()調(diào)用父類構(gòu)造函數(shù)初始化繼承,兩者均需為構(gòu)造函數(shù)首條語(yǔ)句,適用場(chǎng)景分別為代碼復(fù)用和父類初始化,本文給大家介紹Java中this()與super()的用法區(qū)別,感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • Java中的有限狀態(tài)機(jī)(設(shè)計(jì)模式——狀態(tài)模式)

    Java中的有限狀態(tài)機(jī)(設(shè)計(jì)模式——狀態(tài)模式)

    這篇文章主要介紹了Java中的有限狀態(tài)機(jī)(設(shè)計(jì)模式——狀態(tài)模式),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評(píng)論

图木舒克市| 沁水县| 确山县| 五寨县| 南昌市| 绩溪县| 五家渠市| 阿荣旗| 赤壁市| 芦溪县| 郴州市| 阳西县| 甘德县| 营口市| 丰城市| 连云港市| 桂阳县| 中牟县| 宁强县| 琼海市| 会东县| 吴旗县| 嘉鱼县| 紫金县| 乐安县| 张家川| 耒阳市| 二连浩特市| 吉林市| 昭觉县| 襄垣县| 邻水| 中江县| 迭部县| 定远县| 庆元县| 张北县| 溧水县| 乐都县| 河北省| 黑龙江省|