国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

關(guān)于ruoyi集成websocket后報(bào)錯(cuò)“WebSocket connection to ‘ws://localhost‘ failed:”

這篇具有很好參考價(jià)值的文章主要介紹了關(guān)于ruoyi集成websocket后報(bào)錯(cuò)“WebSocket connection to ‘ws://localhost‘ failed:”。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

項(xiàng)目場(chǎng)景:

在若依項(xiàng)目中需要做一個(gè)在線溝通的聊天功能,所以在若依的腳手架中集成了websocket。


問(wèn)題描述

在若依中集成websocket后進(jìn)行通信,但是在開(kāi)啟websocket的時(shí)候會(huì)報(bào)錯(cuò)“WebSocket connection to 'ws://localhost' failed:”。找了很多解決方法都無(wú)法解決,包括:修改vue.config.js中的配置,修改跨域的配置問(wèn)題。

let socketUrl = "ws://localhost:8080/imserver/" + username;
if (socket != null) {
    socket.close();
    socket = null;
}
// 開(kāi)啟一個(gè)websocket服務(wù)
socket = new WebSocket(socketUrl);

原因分析:

使用若依的基本都會(huì)對(duì)他的源碼有所了解,若依對(duì)訪問(wèn)后端接口的限制是很多的,除了一些特殊訪問(wèn),所有請(qǐng)求都需要鑒權(quán)訪問(wèn),如下代碼摘自若依前后端分離“ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java”

   /**
     * anyRequest          |   匹配所有請(qǐng)求路徑
     * access              |   SpringEl表達(dá)式結(jié)果為true時(shí)可以訪問(wèn)
     * anonymous           |   匿名可以訪問(wèn)
     * denyAll             |   用戶不能訪問(wèn)
     * fullyAuthenticated  |   用戶完全認(rèn)證可以訪問(wèn)(非remember-me下自動(dòng)登錄)
     * hasAnyAuthority     |   如果有參數(shù),參數(shù)表示權(quán)限,則其中任何一個(gè)權(quán)限可以訪問(wèn)
     * hasAnyRole          |   如果有參數(shù),參數(shù)表示角色,則其中任何一個(gè)角色可以訪問(wèn)
     * hasAuthority        |   如果有參數(shù),參數(shù)表示權(quán)限,則其權(quán)限可以訪問(wèn)
     * hasIpAddress        |   如果有參數(shù),參數(shù)表示IP地址,如果用戶IP和參數(shù)匹配,則可以訪問(wèn)
     * hasRole             |   如果有參數(shù),參數(shù)表示角色,則其角色可以訪問(wèn)
     * permitAll           |   用戶可以任意訪問(wèn)
     * rememberMe          |   允許通過(guò)remember-me登錄的用戶訪問(wèn)
     * authenticated       |   用戶登錄后可訪問(wèn)
     */
    @Override
    protected void configure(HttpSecurity httpSecurity) throws Exception
    {
        // 注解標(biāo)記允許匿名訪問(wèn)的url
        ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry registry = httpSecurity.authorizeRequests();
        permitAllUrl.getUrls().forEach(url -> registry.antMatchers(url).permitAll());

        httpSecurity
                // CSRF禁用,因?yàn)椴皇褂胹ession
                .csrf().disable()
                // 禁用HTTP響應(yīng)標(biāo)頭
                .headers().cacheControl().disable().and()
                // 認(rèn)證失敗處理類
                .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()
                // 基于token,所以不需要session
                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
                // 過(guò)濾請(qǐng)求
                .authorizeRequests()
                // 對(duì)于登錄login 注冊(cè)register 驗(yàn)證碼captchaImage 允許匿名訪問(wèn)
                .antMatchers("/login", "/register", "/captchaImage").permitAll()
                // 靜態(tài)資源,可匿名訪問(wèn)
                .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
                // 除上面外的所有請(qǐng)求全部需要鑒權(quán)認(rèn)證
                .anyRequest().authenticated()
                .and()
                .headers().frameOptions().disable();
        // 添加Logout filter
        httpSecurity.logout().logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler);
        // 添加JWT filter
        httpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
        // 添加CORS filter
        httpSecurity.addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class);
        httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class);
    }

解決方案:

可以根據(jù)自己的需要進(jìn)行配置,比如項(xiàng)目是自己練習(xí)使用,可以將“

.anyRequest().authenticated()

”直接注釋掉,就可以將所有鑒權(quán)認(rèn)證步驟忽略,而上面的問(wèn)題就迎刃而解了,或者將靜態(tài)資源寫(xiě)入antMatchers內(nèi),也可以解決該問(wèn)題。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-509297.html

到了這里,關(guān)于關(guān)于ruoyi集成websocket后報(bào)錯(cuò)“WebSocket connection to ‘ws://localhost‘ failed:”的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包