Olá, minha dúvida é se é possível usar WebSocket junto com o VRaptor? ou é uma implementação separada? Eu vi na página do apache tomcat, porém lá diz que a implementação do WebSocket não está finalizada ainda, porém queria saber se existe outra alternativa para implementar o WebSocket no tomcat 7.
Obrigado desde já!
a implementação que já funciona é a do Jetty 8, se eu não me engano…
o problema é que o vraptor é implementado usando um Filter e essa implementação se baseia numa Servlet assíncrona. o que dá pra tentar fazer é criar uma versão do filtro do VRaptor em servlet…
quer tentar fazer?
Quero sim, isso vai influenciar em desempenho ou coisa do genero?
trocar de Filter pra Servlet? Não.
trocar de Filter pra AsyncServlet? Talvez. Mas provavelmente nada muito significativo.
Mas isso soh com jetty 8 certo?
sim, pq só ele tem o suporte estável ao WebSocket…
The WebSocket protocol is implemented in different web browsers, web servers, and run-time environments and libraries acting as clients or servers. The following is a table of different features of notable WebSocket implementations.
Client-languages: JavaScript, .NET, Mono
Aham, e você possui algum artigo ou tutorial para implementar para o VRaptor?
Aham, e você possui algum artigo ou tutorial para implementar para o VRaptor?
http://vraptor.caelum.com.br/pt/docs/como-contribuir/
Mas no caso vc vai ter que fazer uma versão dessa classe:
/***
* Copyright (c) 2009 Caelum - www.caelum.com.br/opensource
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package br.com.caelum.vraptor;
import java.io.IOException;
This file has been truncated. show original
que ao invés de implements Filter terá que estender HttpServlet (ou AsyncServlet se eu não me engano)
tudo que tá no doFilter vc pode colocar no método service da servlet.
daí talvez vc tenha que fazer alguma coisa pro async funcionar, mas vc pode fazer esse primeiro passo, se funcionar a gente tenta adaptar pro async.
Por favor faça isso nun fork do VRaptor:
Abraços
Eu poderia tentar implementar essa versão do async, para por exemplo mais pra frente criar um @ResourceAsync vamos supor!
Só que no caso dae só funcionaria com o Jetty por enquanto certo?
se vc usar a API do Servlet 3 pra async, funcionaria em qqer servidor java que suporta isso
blz, vou tentar fazer a implementação, qualquer dúvida retorno aqui!
commite lá no github, daí eu consigo te dar uns toques durante o desenvolvimento
me passa o link do seu fork!
https://github.com/alexandref93/vraptor
não sei se vai dá tempo tudo hoje, mas pretendo finalizar essa semana!
Cara fiquei meio na dúvida quanto a implementação, tipo tentando seguir mais ou menos isso http://blog.caelum.com.br/websockets-html5-em-java-com-jetty-web-em-tempo-real/
só que parece que fica meio preso ao Jetty =s
sim… esse é preso ao jetty…
mas tenta fazer o do servlet 3:
https://blogs.oracle.com/enterprisetechtips/entry/asynchronous_support_in_servlet_3
tá em ingles, mas é algo na linha de usar:
@WebServlet(url="/foo" asyncSupported=true)
e
AsyncContext aCtx = req.startAsync(req, res);
daí dá pra fazer alguma coisa…
não tenho certeza se ele vai usar webSockets pra isso, mas é algo nessa linha.
Agora não sei como vou tratar FilterChain já que com HttpServlet não vem ele…
é só não usar o filterChain… remove esse código.
isso é pra continuar a requisição caso ela não seja tratável pelo vraptor (tipo imagens e javascripts)