真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

websocket如何在springboot中應(yīng)用

今天就跟大家聊聊有關(guān)websocket如何在springboot中應(yīng)用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

成都創(chuàng)新互聯(lián)公司是專業(yè)的鄂州網(wǎng)站建設(shè)公司,鄂州接單;提供網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行鄂州網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!

1.首先搭建一個簡單的springboot環(huán)境


  
    org.springframework.boot
    spring-boot-starter-parent
    2.0.4.RELEASE
  

  
  
    
      org.springframework.boot
      spring-boot-starter-web
    
  

2.引入springboot整合websocket依賴



  org.springframework.boot
  spring-boot-starter-websocket
  2.0.4.RELEASE

3.創(chuàng)建啟動springboot的核心類

package com;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class GlobalConfig {
  public static void main(String[] args) {
    SpringApplication.run(GlobalConfig.class, args);
  }
}

4.創(chuàng)建websocket服務(wù)器

正如springboot 官網(wǎng)推薦的websocket案例,需要實現(xiàn)WebSocketHandler或者繼承TextWebSocketHandler/BinaryWebSocketHandler當(dāng)中的任意一個.

package com.xiaoer.handler;

import com.alibaba.fastjson.JSONObject;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;

import java.util.HashMap;
import java.util.Map;

/**
 * 相當(dāng)于controller的處理器
 */
public class MyHandler extends TextWebSocketHandler {
  @Override
  protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
    String payload = message.getPayload();
    Map map = JSONObject.parseObject(payload, HashMap.class);
    System.out.println("=====接受到的數(shù)據(jù)"+map);
    session.sendMessage(new TextMessage("服務(wù)器返回收到的信息," + payload));
  }
}

5.注冊處理器

package com.xiaoer.config;

import com.xiaoer.handler.MyHandler;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;

@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
  @Override
  public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
    registry.addHandler(myHandler(), "myHandler/{ID}");
  }
  public WebSocketHandler myHandler() {
    return new MyHandler();
  }

}

6.運行訪問

websocket如何在springboot中應(yīng)用

出現(xiàn)如上圖是因為不能直接通過http協(xié)議訪問,需要通過html5的ws://協(xié)議進(jìn)行訪問.

7.創(chuàng)建Html5 客戶端



  
    
    
  
  
    
    Send  
    Close
    
    
            

8.運行

websocket如何在springboot中應(yīng)用

利用客戶端運行之后仍然會出現(xiàn)上圖中的一連接就中斷了websocket連接.

這是因為spring默認(rèn)不接受跨域訪問:

As of Spring Framework 4.1.5, the default behavior for WebSocket and SockJS is to accept only same origin requests.

需要在WebSocketConfig中設(shè)置setAllowedOrigins.

package com.xiaoer.config;

import com.xiaoer.handler.MyHandler;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;

@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
  @Override
  public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
    registry.addHandler(myHandler(), "myHandler/{ID}")
      .setAllowedOrigins("*");
  }
  public WebSocketHandler myHandler() {
    return new MyHandler();
  }

}

如下圖,并未輸出中斷,說明連接成功.

websocket如何在springboot中應(yīng)用

9.服務(wù)器和客戶端的相互通信

服務(wù)器端收到消息

websocket如何在springboot中應(yīng)用

客戶端收到服務(wù)器主動推送消息

websocket如何在springboot中應(yīng)用

看完上述內(nèi)容,你們對websocket如何在springboot中應(yīng)用有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


本文題目:websocket如何在springboot中應(yīng)用
鏈接URL:http://weahome.cn/article/jgoohg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部