Grails e Socket TCP/UDP
15/04/2013 13:36
0
Olá Pessoal,

Não sei se alguém já passou por isso, mas preciso que minha aplicação grails fique escutando as portas 5000 a 5050 em threads separadas, cada thread terá sua porta de escuta e a thread obviamente vai poder acessar os serviços normais da aplicação, bem como acessar o banco mongodb e tudo mais.

Eu nunca fiz nada do tipo em grails, porém em java tem um exemplo:
https://github.com/tananaev/traccar

Alguém pode me ajudar? O bind precisa ser TCP e se possível suporta UDP.

Graça e paz a todos!
Tags: tcp, udp, socket, server, thread


0
Oi Paulo,

neste caso, você vai fazer exatamente como faria se estivesse usando Java. Lembre-se: código Groovy vira bytecode igual Java e código Java pode ser acessado nativamente pelo Groovy.

Sendo assim, se for o caso, pode inclusive pegar sua implementação em Java e usar no seu projeto Grails sem problema. Basta ou copiar o código fonte para a pasta src/java do seu projeto ou empacotá-lo como um jar e copiá-lo em seguida para a pasta lib.


0
Eu não sei se é tão simples assim, tudo bem que as classes podem ser java/grails/ruby pois no final é tudo o mesmo bytecode, mas a diferença principal que eu estou na dúvida é em relação ao tipo de aplicação, pois a aplicação java que citei e estou usando tem um entrypoint que é a classe Main. Mas como isso funcionaria no grails que é uma aplicação web? Ainda está faltando uma peça no quebra-cabeça, pois a aplicação web deverá iniciar uma thread também sempre que ela foi "deployada". Sacou minha dúvida?
15/04/2013 17:02


0
Entendi.

Neste caso Paulo, você precisa é de um ponto de início para a execução da thread. Minha sugestão é criar um serviço só para iniciar estes processos para você.

Eu implementaria uma classe de serviço que, ao ser iniciada, automáticamente iniciasse os seus servidores para que começassem a ouvir nas portas que você quer trabalhar.


0
Saquei, mas a idéia é fazer isso, o problema é quando? Existe algum evento que é chamado na iniciação da aplicação pela primeira vez a cada deploy?
15/04/2013 17:43


1
Eu acho que descobri, creio que uma classe de bootstrap pode resolver:
http://grails.org/Bootstrap+Classes
15/04/2013 18:00


0
Perfeito Paulo: aí é uma excelente alternativa.



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto