最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
SpringBoot中怎么使用WebSocket實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)消息

本篇內(nèi)容介紹了“SpringBoot中怎么使用WebSocket實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)消息”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)東昌府免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

一、添加依賴,配置

使用 Spring Security 里的用戶。


    org.springframework.boot
    spring-boot-starter-security

我們現(xiàn)在需要配置用戶信息和權(quán)限配置。

@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    // 指定密碼的加密方式
    @SuppressWarnings("deprecation")
    @Bean
    PasswordEncoder passwordEncoder(){
        // 不對(duì)密碼進(jìn)行加密
        return NoOpPasswordEncoder.getInstance();
    }

    // 配置用戶及其對(duì)應(yīng)的角色
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
                .withUser("admin").password("123").roles("ADMIN","USER")
                .and()
                .withUser("hangge").password("123").roles("USER");
    }

    // 配置 URL 訪問(wèn)權(quán)限
    @Override
    protected  void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests() // 開(kāi)啟 HttpSecurity 配置
                .anyRequest().authenticated() // 用戶訪問(wèn)所有地址都必須登錄認(rèn)證后訪問(wèn)
                .and().formLogin().permitAll(); // 開(kāi)啟表單登錄
    }
}

二、編寫(xiě)WebSocket 配置

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        // 設(shè)置消息代理的前綴,如果消息的前綴為"/queue",就會(huì)將消息轉(zhuǎn)發(fā)給消息代理(broker)
        // 再由消息代理廣播給當(dāng)前連接的客戶端
        //也可設(shè)置多個(gè) broker,如:config.enableSimpleBroker("/topic","/queue");
        config.enableSimpleBroker("/queue");
        // 下面方法可以配置一個(gè)或多個(gè)前綴,通過(guò)這些前綴過(guò)濾出需要被注解方法處理的消息。
        // 例如這里表示前綴為"/app"的destination可以通過(guò)@MessageMapping注解的方法處理
        // 而其他 destination(例如"/topic""/queue")將被直接交給 broker 處理
        config.setApplicationDestinationPrefixes("/app");
    }

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        // 定義一個(gè)前綴為"/chart"的endpoint,并開(kāi)啟 sockjs 支持。
        // sockjs 可以解決瀏覽器對(duì)WebSocket的兼容性問(wèn)題,客戶端將通過(guò)這里配置的URL建立WebSocket連接
        registry.addEndpoint("/chat").withSockJS();
    }

}

三、編寫(xiě)案例代碼

1、編寫(xiě)實(shí)體

@Data
public class Chat {

    // 消息的目標(biāo)用戶
    private String to;

    // 消息的來(lái)源用戶
    private String from;

    // 消息的主體內(nèi)容
    private String content;

}

2、編寫(xiě)Controller

@Controller
public class DemoController {

    @Autowired
    SimpMessagingTemplate messagingTemplate;

    // 處理來(lái)自"/app/chat"路徑的消息
    @MessageMapping("/chat")
    public void chat(Principal principal, Chat chat) {
        // 獲取當(dāng)前登錄用戶的用戶名
        String from = principal.getName();
        // 將用戶設(shè)置給chat對(duì)象的from屬性
        chat.setFrom(from);
        // 再將消息發(fā)送出去,發(fā)送的目標(biāo)用戶就是 chat 對(duì)象的to屬性值
        messagingTemplate.convertAndSendToUser(chat.getTo(),
                "/queue/chat", chat);
    }

}

四、編寫(xiě)頁(yè)面

在 resources/static 目錄下創(chuàng)建 chat2.html 頁(yè)面作為點(diǎn)對(duì)點(diǎn)的聊天頁(yè)面。

連接成功后,訂閱的地址為“/user/queue/chat”,該地址比服務(wù)端配置的地址多了“/user”前綴,這是因?yàn)?SimpMessagingTemplate 類中自動(dòng)添加了路徑前綴。




    
    單聊
    
    
    
    



    
    
    
        請(qǐng)輸入聊天內(nèi)容:                  目標(biāo)用戶:                  發(fā)送     

五、驗(yàn)證結(jié)果

我們使用了 Spring Security 會(huì)自動(dòng)跳轉(zhuǎn)到默認(rèn)登錄頁(yè)面。

SpringBoot中怎么使用WebSocket實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)消息

這里我們配置兩個(gè)用戶信息:admin/123,piao/123。

SpringBoot中怎么使用WebSocket實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)消息

SpringBoot中怎么使用WebSocket實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)消息

“SpringBoot中怎么使用WebSocket實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)消息”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


網(wǎng)站欄目:SpringBoot中怎么使用WebSocket實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)消息
網(wǎng)站網(wǎng)址:http://fisionsoft.com.cn/article/iepehg.html