<bdo id="vljxk"><rt id="vljxk"><noframes id="vljxk"><noframes id="vljxk"><noframes id="vljxk"><rt id="vljxk"></rt><rt id="vljxk"></rt><noframes id="vljxk"><rt id="vljxk"><delect id="vljxk"></delect></rt><noframes id="vljxk"><rt id="vljxk"></rt><noframes id="vljxk"><noframes id="vljxk"><rt id="vljxk"></rt>

當前位置:首頁 >  站長 >  編程技術 >  正文

WebSocket配置中會遇到的一些問題

 2020-01-17 17:49  來源: A5用戶投稿   我來投稿 撤稿糾錯

  阿里云優惠券 先領券再下單

今天來整理一些我在工作中配置上遇到的一些問題。

Q1使用nginx代理后不能訪問。報錯WARNING:tornado.access:400 GET /ws (127.0.0.1) 0.79ms  或者連接失敗后會反復發起連接請求。

需要在nginx的location中新增如下配置

# websocket

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

Q2 跨域問題(spring websocket)

經查閱官方文檔springwebsocket 4.1.5版本前默認支持跨域訪問,之后的版本默認不支持跨域,需要設置

.setAllowedOrigins(“*”)

@Override

public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {

registry.addHandler(myWebSocketHandler(), "/echo.do").setAllowedOrigins("*").addInterceptors(new HandshakeInterceptor());

registry.addHandler(myWebSocketHandler(), "/echo").setAllowedOrigins("*").addInterceptors(new HandshakeInterceptor())

.withSockJS();

}

Q3 *.do配置導致sockjs失效問題(spring websocket)

web.xml中添加如下配置

dispatcher

/sockjs/*

websocket配置類中路徑中不加sockjs

registry.addHandler(myWebSocketHandler(), "/echo").setAllowedOrigins("*").addInterceptors(new HandshakeInterceptor())

.withSockJS(); 

前端調用時應加上sockjs

websocket = new SockJS("http://127.0.0.1:8080/WebSocketTest001/sockjs/echo");

Q4 一個websocketsession對應多個session的情況 

這是由于盡管每次都能保證有一個websocketsession存在,但客戶端沒連接一次tomcat都建立一個鏈接,除非你在請求頭里添加cookie:JSESSIONID=xxxxxx

Q5 能收到客戶端消息,后臺也顯示發送,但是客戶端收不到 

這個問題經我個人觀察和猜測,應該是websocketsession沒有成功關閉或者成功關閉但是和一個websocketsession對應多個session有關,因為我把上面的問題解決了之后,這個問題也沒出現過了。

如果你們覺得自己或者團隊弄WebSocket這塊比較麻煩,或者開發成本高,周期長的話,可以考慮用三方的。

我這里只推薦個免費的 GoEasy 你們自己可以去看看。

希望這些問題的解決方法對大家有幫助

申請創業報道,分享創業好點子。點擊此處,共同探討創業新機遇!

相關標簽
技術
服務器軟件

相關文章

  • 入夏以來,nginx中國首場技術盛宴!nginx社區線下沙龍-北京專場圓滿舉辦

    2002年,一位名叫IgorSysoev來自“戰斗民族”俄羅斯的極客寫出了一個叫NGINX的HTTP和反向代理web服務器,也許那時他也不曾想過,19年后的NGINX會成為全球最受歡迎的開源產品之一,和被大家所公認的那個“讓產品在支持高并發請求的同時保持高效的服務”——“最好的選擇”。

  • TurboEx軟件,國產化郵件系統改造優質之選

    在我國金融、能源、交通、政府等行業部門的生產、調度、管理、辦公等重要信息系統中,硬件和軟件系統主要依賴國外的產品品牌,很多行業的重要數據存放于國外品牌的軟硬件設備上,自主可控性差,存在著極大的安全保密隱患。

    標簽:
    服務器軟件
  • MongoDB全球云端技術盛會MongoDB.live

    MongoDB全球云端技術盛會MongoDB.live,將于北京時間6月9日22:00正式開啟,大會將以在線直播+按需學習相結合的方式,面向全球開發者、架構師等MongoDB用戶和愛好者免費開放

    標簽:
    云計算
    技術
  • ECC+RSA雙證書解決方案

    ECC是EllipticCurvesCryptography的縮寫,意為橢圓曲線密碼編碼學。和RSA算法一樣,ECC算法也屬于公開密鑰算法。最初由Koblitz和Miller兩人于1985年提出,其數學基礎是利用橢圓曲線上的有理點構成Abel加法群上橢圓離散對數的計算困難性。

    標簽:
    技術
  • 60位嘉賓13個主題帶你瞭望大前端新技術,GMTC深圳成功舉辦

    GMTC關注前端、移動、AI應用等多個前沿技術領域及實踐經驗,旨在通過技術趨勢研討與前沿案例剖析,促進全球技術交流,推動國內技術升級。本屆GMTC為期4天,包括兩天的會議和兩天的培訓課,主要面向各行業前端、移動開發、AI技術感興趣的中高端技術人員。

    標簽:
    技術
    大會

熱門排行

信息推薦