Pergunta

Eu quero criar servidor simples de ter baixa carga.O objetivo é dar algumas javascript clientes o acesso a algumas funcionalidades implementadas em Java através de WebSockets.Procuro para melhor biblioteca a usar para o que deveria ser simples, robusta, etc.Agora eu considerar 3 alternativas - jWebSocket - jetty - netty Qual é o melhor?Ou pode ser outra coisa?

Obrigado antecipadamente

Foi útil?

Solução

O JWebSocket agora inclui o motor Jetty 8.0, incluindo SSL, e inclui muitos bons a serem altos em cima dele. Ele fornece clientes compatíveis entre navegadores e plataformas cruzadas ainda mais aplicativos móveis, por exemplo, sob Android, Symbian e BlackBerry. O servidor pode ser facilmente estendido com plug-in e já inclui muitos deles (por exemplo, para autenticação/autorização, JDBC, SMTP, XMPP/JABBER, RPC, Twitter, compartilhamento de arquivos, bate-papo etc.). Basta dar uma olhada ... http://jwebsocket.org. Ansioso por seu feedback.

Atenciosamente Alex

Outras dicas

Eu iria com servidores Java Servlet comprovados: Jetty ou Resina. Os dois foram estendidos para lidar com a WebSockets:

Jetty Websockets

Resina websockets

Minha escolha pessoal seria o cais, pois é muito simples de usar e eu o uso como servidor incorporado em vários projetos.

Há também algumas crianças novas no quarteirão como Atmosfera e JWebSocket, mas para servidores, prefiro ir com uma solução comprovada. Jetty e resina também são servidores genéricos de servlet, para que você possa ir com um produto para todas as suas necessidades de serviço.

o PlayFramework! é a outra opção muito boa.

FYI, atmosfera corre em cima de resina, peixe -vidro e cais. A atmosfera livre você de ficar presa a um servidor, fornecendo portabilidade do WebSocket entre o WebSocket Server. Ele também oferece uma biblioteca de clientes que pode ser selecionada, o melhor transporte, caso o WebSocket não seja suportado pelo navegador. Então você não pode comparar atmosfera com cais ou rsin

Dar uma olhada em Atmosfera. Aqui está um artigo sobre WebSocket e atmosfera.

Enquanto o valor de I a implementações de JWebsockets e Autobahn um monte, eu prefiro Atmosfera.

Ramp-Up::A rampa de tempo é baixo.François Arcand coloca um monte de esforço para os testes e exemplos, ajudando todos a conseguidos ganhos rápidos.(E eu não tenho nenhuma idéia de por que ele é capaz de responder rapidamente a qualquer arquitetônico perguntas que eu subir.Impressionante.)

Manutenção De Perspectiva::Para mim, a facilidade de manutenção é fundamental, se um software vai além do grande lançamento da versão 1.0.0.O projeto é mantido no topo de uma Maven-POM nível com uma bem construída hierarquia.Ele impede biblioteca incompatability.As bibliotecas são uma referência a nível correto.Que é bem feito.

Técnico/Perspectiva Funcional::Dispõe de um Java SE biblioteca de cliente (wasync) que pode fazer nativo websocket de comunicação (onMessage) ou criar Jersey RESTO de anotações (@Path).Posteriormente, este torna-se tão simples quanto ele ganha com a vantagem de manter uma conexão aberta para assinaturas e o popular chamadas de procedimento remoto (RPC) paradigma.É comum tentar mesclar esses dois paradigmas.Veja também http://wamp.ws/, que se dirige para a mesma abordagem.Além disso, a biblioteca oferece para estabelecer propriedades de QoS, como robustez (e.g.no caso de um cliente se desconecta) e confiabilidade (cache de mensagens não entregues).O que é ótimo para profissionais de software para aproveitar.

Talvez você deva tentar Servidor Bristleback? Usando o Bristleback, você pode escolher entre vários motores do WebSockets, como Jetty, Netty e Tomcat. Você pode ter servidor independente e aplicativo da Web que usa WebSockets (Jetty e Tomcat 7). Bristleback usa a estrutura de primavera. Se você trabalhou com estruturas da web, como suportes, listras ou reprodução!, Será muito fácil para você começar. Obviamente, a Bristleback possui sua própria biblioteca de clientes JavaScript para um desenvolvimento ainda mais fácil.

Divulgação completa: sou um dos co-criadores do Bristleback Server.

Eu também acrescentaria Vert.x para a lista. Ele pode servidor WebSockets e Sockjs (emulação do WebSocket quando o navegador não os suporta).

Atualizar:
Ressaca http://undertow.io Também suporta websockets.

Siga meu blog. Estarei pronto para ser lançado em algum momento no futuro não muito longe. O peso leve foi enfatizado através da coisa toda - mas também é rápida. Ainda não sei o quão bem ele aumentará para cargas mais altas. Mas já estou executando a demonstração há um tempo com carga relativamente baixa e o que tenho trabalhado bem. (Vou testar cargas mais pesadas mais tarde e garantir que ela possa ser aumentada.)

http://highlevellogic.blogspot.com/2011/09/webocket-severver-demonstration_26.html

Se você estiver olhando para infra-estrutura em torno de gerenciamento de mensagens, o agrupamento de usuário ("quartos"), e a sincronização de dados ("shared variables"), você pode querer considerar a União de Plataforma:

http://www.unionplatform.com

[Divulgação completa:Eu sou um dos co-criadores da União]

Por que você não escreve seu aplicativo em um padrão aberto como o JMS e deixa os clientes sentar no barramento JMS como clientes de mensagens? O ponto principal do WebSockets é levar qualquer protocolo TCP nativo diretamente para o cliente, em vez de convertê -lo do seu back -end em solicitação/resposta HTTP.

Seus serviços de back -end conversariam com um corretor JMS como o ActiveMQ, e seus clientes falam AMQP no navegador por meio de uma API JavaScript que se parece com a API JMS em Java. Tudo o que você precisa para isso é um gateway da WebSocket, por exemplo, o Kaazing tem esse gateway, tudo o que faz é rotear seu tráfego JMS TCP para os clientes da Web em relação aos WebSockets. Eles também fornecem fan-out para que você não sobrecarregue seu barramento JMS, ou seja, você apenas usa um punhado de conexões com o corretor para descarregar um milhão de conexões do cliente do navegador.

O ponto principal é que você não precisa se vincular a nenhuma plataforma específica. Fique com os padrões, assim você tem 100% de liberdade para trocar os componentes à medida que seu ambiente muda.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top