Efeito
O navegador que não suporta o WebSocket, usa o Flash para simular o WebSocket.
De fato, o protocolo WebSocket é relativamente simples e é mais simples de simular com o ActionScript.
Além disso, o Spring fornece APIs para o SOCKJS. Eu não vi ainda.
Algumas das descrições:
1. O uso do encapsulamento do WebSocket pela Spring pode ser usado sozinho ou com o MVC da primavera. Deve -se notar que, quando usado sozinho, você ainda precisa configurar o despachante do Spring no web.xml e ainda precisa abrir o servidor.
<Verlet> <Verlet-name> websocket </ervlet-name> <Servlet-class> org.springframework.web.servlet.dispatchertlet </servlet-class> <para m-name> contextConfiglocation </param- name> <param -Value> /web-inf/applicationContext.xml </param-value> </irit-param> <adarot-on-startup> 1 </load-startup> </servlet- mapping> <Servlet-name> websocket < /Servlet-name> <url-tattern>/</url-tattern> </servlet-mapping>>
2. Quando usado sozinho, se consulte o domínio cruzado, você precisa definir uma lista de permissões na primavera
<websocket: manipuladores permitidos-origins = "*"> ........ </websocket: manipuladores>
3. Como o flash é usado, é necessário ativar a porta 843 e retornar o arquivo de política quando o flash solicitar o arquivo de política. O exemplo é Netty4.
4. Você precisa interceptar e monitorar o aperto de mão. Como na aula de processamento da Websocket, é impossível obter a sessão da WebSockets.
Public class ChatIntercepter estende httpSessionHandshaandshakeInterceptor {@Override public boolean antes (ServerhttPrequest Solicy, WebSockethandler Wshandler, Map <String, object> atributes) lança excepção {if (solicita a instância do servletTeRTeRTr) missão .getServletRequest (). ("" Antes do handshake "+request.getheaders ()); // retorna super.beforehandshake (solicitação, resposta, wshandler, atributos); retorna true; .............
5. No Web-Socket-JS, as informações do cabeçalho da WebSocket simuladas pelo Flash conterão cookie, mas são adicionadas pelo script. Portanto, para evitar os cookies necessários, como o cookie da sessão, é httponly.
Se estiver atualmente desenvolvido no eclipse
Pode -se observar que a adição de usehttponly = 'false' é adicionada à tag de contexto e a tag de contexto é adicionada automaticamente quando o Eclipse é implantado.
Se você já o embalou, vá para o diretório Tomcat /conf/server.xml, adicione -o antes do último </dost>
Copie o código do código da seguinte forma:
<Contexto docbase = "websocket" path = "/websocket" Reloadable = "true" usehttponly = 'false'/>
O significado disso é todo o conteúdo deste artigo, espero que todos possam gostar.