Efecto
El navegador que no admite WebSocket, use Flash para simular WebSocket.
De hecho, el protocolo WebSocket es relativamente simple, y es más simple simular con ActionScript.
Además, Spring proporciona API para Sockjs. No lo he visto todavía.
Algunas de las descripciones:
1. Uso de la encapsulación de Spring de WebSocket se puede usar solo o con Spring MVC. Cabe señalar que cuando se usa solo, aún necesita configurar el despachador de Spring en Web.xml, y aún tiene que abrir el servidor.
<Servlet> <Servlet-name> WebSocket </servlet-name> <ervlet-class> org.springframework.web.servlet.dispatchervlet </servlet-class> <párls m-name> contextciglocation </amam- name> <param -Value> /web-inf/applicationContext.xml </param-value> </ init-param> <load-on-startup> 1 </load-sartup> </servlet- asignación> <servlet-name> websocket < /Servlet-Name> <Url-Pattern>/</url-Pattern> </servlet-mapping >>
2. Cuando se usa solo, si se refiere al dominio cruzado, debe establecer una lista blanca en primavera
<WebSocket: Handlers permitido-origins = "*"> ........ </WebSocket: Handlers>
3. Debido a que se usa Flash, es necesario activar el puerto 843 y devolver el archivo de política cuando Flash solicitó el archivo de política. El ejemplo es Netty4.
4. Necesita interceptar y monitorear el apretón de manos. Porque en la clase de procesamiento de WebSocket, es imposible obtener una sesión de WebSocketSession.
Public Class ChatIntercepter extiende httpsessionHandshaKakeInterceptor {@Override public boolean antes de que Solicitud de serverHttpRequest, respuesta, WebSocketHandler wshandler, map <string, object> atributes) lanza la excepción {if (solicitud de servlettpRequest) {prequest ServletRequest = (Servlets). Petición .getServletRequest (). ("" Antes del apretón de manos "+request.getheaders ()); // return super.beforeHandshake (solicitud, respuesta, wshandler, atributos); return true; .............
5. En Web-Socket-JS, la información del encabezado WebSocket simulada por Flash contendrá cookies, pero el script lo agrega. Por lo tanto, para evitar las cookies requeridas, como la cookie de sesión es httponly.
Si se desarrolla actualmente en Eclipse
Se puede ver que agregar UseHttPonly = 'False' se agrega a la etiqueta de contexto, y la etiqueta de contexto se agrega automáticamente cuando se implementa Eclipse.
Si ya lo ha empacado, vaya al directorio Tomcat /conf/server.xml, agrégalo antes del último </gest>
Copiar código del código de la siguiente manera:
<Context docbase = "websocket" path = "/websocket" reloadable = "true" usehttponly = 'false'/>
El significado de esto es todo el contenido de este artículo, espero que a todos les pueda gustar.