1. 程式人生 > >WebSocket配置中會遇到的一些問題

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

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

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中新增如下配置
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/sockjs/*</url-pattern>    
</servlet-mapping>
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
你們自己可以去看看。
網址:www.goeasy.io

相關推薦

WebSocket配置遇到的一些問題

今天來整理一些我在工作中配置上遇到的一些問題。Q1使用nginx代理後不能訪問。報錯WARNING:tornado.access:400 GET /ws (127.0.0.1) 0.79ms  或者連線失敗後會反覆發起連線請求。需要在nginx的location中新增如下配置

字符、字符集、編碼,以及它們python遇到的一些問題(下)

區別 做了 and 內部 eve nbsp nes 文字 相對 在看了很多的博客文章之後,總結整理得到了以下文章,非常感謝這些無私奉獻的博主! 文章末尾有本文引用的文章的鏈接,如果有漏掉的文章引用,可以發郵件聯系我,隨後再次附上鏈接! 侵刪!!! 這一部分是下篇,主要

工作總結 Rezor 裏面的一些小知識----自定義類型 放在標簽值 直接跳過去

直接 技術 例如 images 定義變量 png 索引 log blog 0 的時候不報錯 1 的時候 報錯了 原因 是 imagesname[i] 索引超出了 為什麽在 上面 報錯呢? 不在這裏報錯呢? 說明了 Rezor 對於 自定義的變量 放在標

演算法移植到STM32微控制器遇到的一些問題

    最近完成了一些演算法,需要移植到STM32F4系列的板子上用作實際工程,其中遇到了許多的問題,下面記錄一些除錯bug的經驗記錄。 1、編譯沒有問題,但是除錯執行時卻會進入到某一函式無法執行,之後跳到記憶體出錯的無限迴圈保護程式中。這樣的問題一般是記憶體溢位的問題,F4的

RabbitMQ:入門(二)——RabbitMQ Server 環境配置一些

RabbitMQ的服務端基於Erlang語言編寫,要在機器上安裝RabbitMQ必須先搞好Erlang環境。如果沒配置好Erlang環境,直接執行RabbitMQ官網上的exe檔案,會彈框提示你先裝好Erlang環境。也就是如果機器上沒配好Erlang環境,RabbitMQ的服務端是啟動不起來的。

hadoop安裝配置一些問題

1.安裝配置java時 程式 ‘java’ 已包含在下列軟體包中: * default-jre * gcj-4.8-jre-headless * gcj-4.9-jre-headless * openjdk-7-jre-headless * openjdk-6-jre-headl

RabbitMQ Server 環境配置一些

RabbitMQ的服務端基於Erlang語言編寫,要在機器上安裝RabbitMQ必須先搞好Erlang環境。如果沒配置好Erlang環境,直接執行RabbitMQ官網上的exe檔案,會彈框提示你先裝好Erlang環境。也就是如果機器上沒配好Erlang環境,Ra

虛擬機器網路配置一些疑難問題---在實驗室遇到了Destination Host Unreachable

csdn的新版的部落格速度很快啊。下午本打算nfs一下板子的,發現找不到虛擬機器。測試了下虛擬機器的網路情況:[email protected]:/nfsboot/etc# ping 202.193.89.254  這個閘道器不可達。PING 202.193.89.

VS工程配置一些常用概念

VS工程配置中一些常用概念 在看這篇文章之前首先思考幾個問題: 1、什麼是解決方案?為什麼要有解決方案? 2、我想引用的標頭檔案和我的cpp檔案不在同一個資料夾,我改怎麼辦?能直接引用嗎? 3、在配置opencv的時候需要配置的那些庫目錄、包含目錄到底是

MyEclipseXML的智慧提示和關於Spring 配置檔案頭的一些記錄和解釋

轉載:http://www.cnblogs.com/gagayt/p/3603232.html 一. 首先介紹XML檔案的一些知識: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt

centos6.5 安裝配置nginx php7 過程遇到的一些問題

      先從最一開始說起吧       1、阿里雲伺服器掛載資料硬碟                    不得不說這是一個很簡單但是很激動的過程,怎麼說激動呢,雲伺服器是我正在考慮是不是要用的,當然,以後是肯定會用的,現在的配置是工作中的一個小任務,但是好處在於,有

配置檔案web.config配置httpHandlers節點是的一些說明

<httpHandllers> <add verb="*" path="*.lcj" type="WebHttpHandler.MyHandler" /> </httpHandllers> 說明如下: verb可以是“POST”或 “GE

commons CollectionsUtils的一些功能

goods oid do..while 元素 spa tor arr string 函數 package haohaoxuexi;/** * 函數式編程Closure 閉包封裝業務功能 * 1. Closure * CollectionUtils.forAll

Mabatis_配置出現的error

error int type pac while ets array mco final 1. 不區分大小寫 <mapper namespace="Message"> <resultMap type="com.imooc.bean.Message" id

Nginx學習之反向代理WebSocket配置實例

需要 設置 攔截 創建客戶端 配置實例 rom 反向代理服務器 () 服務 寫在開始去年,做過一款競賽打分的APP。具體需求,同組教師之間可以相互通信,及時通知同組人員,其他組員做了那些操作(當然,這只是針對特定操作) 寫在開始 去年,做過一款競賽打分的APP。具體需求,同

Nginx 安裝過程遇到的一些問題及解決方法

requires nbsp margin req 命令 裝包 ... check sbin 一、安裝 獲取安裝包: wget http://nginx.org/download/nginx-1.11.5.tar.gz 解壓安裝包: tar -zxvf nginx-1.11

iOS 開開textfield的一些記錄

sys style -objc string num col lds 使用 改變 1.placehold 使用KVC機制改變占位符的顏色和大小 [textField setValue:[UIColor redColor] forKeyPath:@"_place

linux輔助的一些命令

輔助blkid /dev/sd2:用於查看這個分區的類型,還有UUID號,卷標e2labe /dev/sd2:專門用於查看ext類型的分區的卷標fsck -a /dev/sd2:檢測並自動修復linux文件系統mount掛載的磁盤,下次開機時會取消掛載。我們采用對/etc/fstab按照上述格式進行編輯,第一

cocos2d-x 移植到android編譯的一些問題:fatal error: Box2D/Box2D.h: No such file or directory&quot;

cocos2 app nal get dsc err 2dx ros blue 1、fatal error: Box2D/Box2D.h: No such file or directory" 須要加入box2d庫的支持,改動android.mk

永和維護---從問題得到的一些感受

alt data 相同 fontsize 一件事 發的 丟失 做什麽 clas 永和維護---從問題中得到的一些感受 從師哥找我和曉春維護永和收銀系統到如今已經兩個多月了,之前一直沒什麽事,最大的感覺就是什麽感覺都沒有。 或許萬事萬物