2010-10-23 26 views
28

Quiero crear el servidor simple que tiene poca carga. El objetivo es dar acceso a algunos clientes de JavaScript a algunas funcionalidades implementadas en Java a través de WebSockets. Busco la mejor biblioteca para eso: debería ser simple, robusta, etc. Ahora considero 3 alternativas - jWebSocket - embarcadero - netty ¿Cuál es la mejor? ¿O puede ser algo más?El mejor marco de Java para WebSockets del lado del servidor

Gracias de antemano

+1

JEE7 ahora es compatible con Websocket. Vea la respuesta SO [aquí] (http://stackoverflow.com/a/18555847/1285418). –

Respuesta

13

jWebSocket ahora incluye el motor Jetty 8.0 que incluye SSL e incluye muchos productos agradables en la parte superior. Proporciona a los clientes compatibles entre navegadores y plataformas múltiples incluso más aplicaciones móviles, p. en Android, Symbian y BlackBerry. El servidor se puede ampliar fácilmente con el complemento y ya incluye muchos de ellos (por ejemplo, para Autenticación/Autorización, JDBC, SMTP, XMPP/Jabber, RPC, Twitter, Compartición de archivos, Chat, etc.). Sólo compruébalo ... http://jwebsocket.org. Esperamos sus comentarios.

Saludos Alex

+0

Soy un novato en los sockets web de Java. Necesito crear clientes Java que necesiten comunicarse de igual a igual usando el nombre de un canal, quiero usar el socket Jweb, pero no puedo comenzar porque no sé cómo crear mi servidor privado tiene un socket web en él. ¿Debería crear un servlet y convertirlo en un punto final del socket web? o es su de otra manera? amablemente esperando una respuesta @ user502448 –

14

Iría con servidores de servlets Java probados: Jetty o Resin. El tener tanto ha ampliado para manejar WebSockets:

Jetty WebSockets

Resin WebSockets

Mi elección personal sería embarcadero, ya que es muy sencillo de utilizar y he estado utilizando como servidor incorporado en varios proyectos.

También hay algunos niños nuevos en el bloque como Atmosphere y jWebSocket, pero para los servidores prefiero ir con una solución probada. Jetty y Resin también son servidores Servlet genéricos, por lo que puede elegir un producto para todas sus necesidades de servicio.

+1

Una opción más: http://activemq.apache.org/websockets.html –

+0

¿Se pueden implementar en tomcat? Necesito una biblioteca de contenedores cruzados. – Jus12

+3

@Peter Knego Los enlaces para [Jetty WebSockets] (http://blogs.webtide.com/gregw/entry/jetty_websocket_server) & [Resin WebSockets] (http://caucho.com/resin-4.0/examples/websocket- java /) que ha proporcionado están haciendo _404 - error de página no encontrada_. – Visruth

6

FYI, Ambiente ejecuta en la parte superior de la resina, GlassFish y embarcadero. Atmosphere lo libera de estar atrapado con un servidor al darle portabilidad de Websocket entre el servidor de Websocket. También ofrece una biblioteca cliente que puede seleccionar el mejor transporte en caso de que el navegador no admita websocket. Entonces no puedes comparar Atmosphere con Jetty o Rsin

0

Sigue mi blog. Estaré listo para su lanzamiento en algún momento en un futuro no muy lejano. El peso ligero se ha enfatizado durante todo el proceso, pero también es rápido. Aún no sé qué tan bien aumentará la carga. Pero he estado ejecutando la demostración por un tiempo ahora con una carga relativamente baja y lo que he estado funcionando bien. (Voy a probar cargas más pesadas tarde y asegúrese de que se puede intensificó.)

http://highlevellogic.blogspot.com/2011/09/websocket-server-demonstration_26.html

0

Si usted está buscando para la infraestructura alrededor de la gestión de mensajes, agrupación de usuario ("cuartos"), y la sincronización de datos ("variables compartidas"), es posible que desee considerar la Plataforma Unión:

http://www.unionplatform.com

[ Divulgación completa: soy uno de los cocreadores de la Unión]

0

¿Por qué no simplemente escribe su aplicación en un estándar abierto como JMS y deja que los clientes se sienten en el bus JMS como clientes de mensajes? El punto de websockets es traer cualquier protocolo TCP nativo directamente al cliente en lugar de convertirlo en su extremo posterior a http petición/respuesta.

Sus servicios de fondo hablarían con un agente de JMS como ActiveMQ, y sus clientes hablarán AMQP en el navegador a través de una API de Javascript que se parece a la API de JMS en Java. Todo lo que necesita para eso es una puerta de enlace de websocket, por ejemplo, Kaazing tiene una puerta de entrada de este tipo, lo único que hace es enrutar el tráfico JMS TCP a los clientes web a través de websockets. También brindan abanico para que no sobrecargue su bus JMS, es decir, solo utiliza un puñado de conexiones con el intermediario para descargar un millón de conexiones de cliente de navegador.

El resultado final es que usted no necesita atarse a ninguna plataforma específica. Cumpla con los estándares, de esa manera tendrá 100% de libertad para intercambiar componentes a medida que cambie su entorno.

3

Tal vez usted debe tratar Bristleback Server? Usando Bristleback, puede elegir entre varios motores WebSockets, como Jetty, Netty y Tomcat. Puede tener un servidor independiente así como una aplicación web que use WebSockets (Jetty y Tomcat 7). Bristleback usa Spring Framework. Si has trabajado con frameworks web como Struts, Stripes o Play !, será muy fácil para ti comenzar. Por supuesto, Bristleback tiene su propia biblioteca cliente de JavaScript para un desarrollo aún más fácil.

La revelación completa: Soy uno de los co-creadores de Erizapúas servidor.

+3

Creo que la revelación completa está en orden – raam86

3

También me gustaría añadir a la lista vert.x. Puede server Websockets y SockJS (emulación de websocket cuando el navegador no los admite).

Actualización:
Undertow http://undertow.io también admite websockets.

4

Aunque valoro las implementaciones de JWebsockets y AutoBahn mucho, prefiero Ambiente. tiempo

Ramp-Up :: de aceleración es baja. Francois Arcand pone mucho esfuerzo en las pruebas y los ejemplos, ayudando a todos a lograr victorias rápidas. (Y no tengo ni idea de por qué él es capaz de responder de manera rápida a cualquier pregunta arquitectónicas I Rise. Impresionante.)

Mantenimiento Perspectiva :: Para mí, facilidad de mantenimiento es fundamental, si un software va más allá de la versión importante versión 1.0 .0. El proyecto se mantiene en un nivel superior de Maven-POM con una jerarquía construida adecuadamente. Impide la incompatibilidad de la biblioteca. Las bibliotecas son referencia en el nivel correcto. Eso está bien hecho.

Técnico/perspectiva funcional :: Ofrece una biblioteca de cliente Java SE (wasync) que puede hacer cualquiera de comunicación WebSocket nativa (onMessage) o construir en anotaciones Jersey REST (@Path).Posteriormente, esto lo hace tan simple como se puede esperar con el beneficio de mantener una conexión abierta para las suscripciones y el popular paradigma de llamadas a procedimiento remoto (RPC). Es un intento común de fusionar esos dos paradigmas. Vea también http://wamp.ws/, que se dirige para el mismo acercamiento. Además, la biblioteca ofrece establecer propiedades de QoS como robustez (por ejemplo, en caso de que un cliente se desconecte) y confiabilidad (almacenamiento en caché de mensajes no entregados). Eso es genial para el software profesional para aprovechar.

Cuestiones relacionadas