効果
WebSocketをサポートしていないブラウザは、Flashを使用してWebSocketをシミュレートします。フラッシュソケットを使用してサーバーソケットに直接接続することもできます。
実際、Websocketプロトコルは比較的簡単であり、ActionScriptでシミュレートすることは簡単です。
さらに、SpringはSockJのAPIを簡単に構成している限り、BROWSERの低いバージョンを使用することもできます。まだ見ていません。
説明のいくつか:
1. SpringのWebSocketのカプセル化の使用は、単独で、またはSpring MVCで使用できます。単独で使用する場合、Web.xmlでSpringのディスパッチャーを構成する必要があり、サーバーを開く必要があることに注意する必要があります。
<Servlet> <Servlet-Name> WebSocket </servlet-name> <servlet-class> org.springframework.web.servlet.dispatchervlet </servlet-class> <para m-name> contextconfiglocation </param- name> <param -value> /web-inf/applicationcontext.xml </param-value> </init-param> <load-on-startup> 1 </load-startup> </servlet-マッピング> <servlet-name> websocket < /servlet-name> <url-pattern>/</url-pattern> </servlet-mapping >>
2。単独で使用する場合、Cross -Domainを参照する場合は、春にホワイトリストを設定する必要があります
<websocket:Handlers Aldoct-Origins = "*"> ........ </webSocket:Handlers>
3.フラッシュが使用されるため、フラッシュがポリシーファイルを要求したときにポート843をオンにしてポリシーファイルを返す必要があります。例はnetty4です。
4.握手を傍受して監視する必要があります。さらに、WebSocketsessionからセッションを取得することは不可能です。
パブリッククラスのchatintercepterは、httpssessionhandshaandshakeinterceptor {@override public boolean freedhandshake(serverhttprequest request、response、map <string、object>属性){(servretestesteste){request instanceof servretest = servretretseprestrestrestrestrestient; LetRequest .getServletRequest() ( "" handshake "+request.getheaders()); // return super.beforehandshake(request、response、wshandler、属性); return true; .............
5。Web-Socket-JSでは、FlashによってシミュレートされたWebSocketヘッダー情報にはCookieが含まれますが、スクリプトによって追加されます。したがって、セッションCookieなどの必要なCookieはhttponlyです。
現在Eclipseで開発されている場合
usehttponly = 'false'の追加がコンテキストタグに追加され、Eclipseが展開されるとコンテキストタグが自動的に追加されることがわかります。
既に詰め込んでいる場合は、tomcat directory /conf/server.xmlにアクセスして、最後の</host>の前に追加します
次のようにコードコードをコピーします。
<コンテキストdocbase = "websocket" path = "/websocket" reloadable = "true" usehttponly = 'false'/>
これの意味は、この記事のすべての内容です。誰もがそれを好きになることを願っています。