2012-04-26 5 views
30

¿Cuál es mejor: Socket.IO o SockJS y cuáles son las mayores diferencias?SockJS o Socket.IO? ¿Vale la pena recodificar una página basada en Ajax?

¿Qué tan difícil es reconstruir una página completamente ajax en una página node.JS/socket.io? ¿Tengo que recodificar absolutamente todo? ¿Hay buenos tutoriales sobre cómo hacer esto? ¿Vale la pena hacerlo (en tu opinión)?

+0

No debe simplemente cambiar todas las atrae hacia pushs. Hay una razón por la que ambos existen. Solo use contenido push si es necesario o útil para la experiencia del usuario. – Alp

+0

Trate de separar sus preguntas y hacerlas menos "objetivas". Posiblemente muestre cualquier investigación sobre el tema que ya haya realizado (esto es para evitar que su problema sea cerrado como no constructivo) – rlemon

+3

Hay un hilo sobre las diferencias entre SockJS y Socket.io en la lista de correo de sockjs, tal vez ayude: https://groups.google.com/forum/#!topic/sockjs/lgzxVnlth54/discussion – Marek

Respuesta

18

SockJS tiene más opciones del lado del servidor disponibles. Si no quieres estar ligado a Node.js, entonces puede ser una opción. La escala parece funcionar mejor, a partir de algunos puntos de referencia que usan PyPy para alojar la porción del lado del servidor.

socket.io tiene más opciones de transporte, que incluyen Flash. Incluso si no le gusta el flash, tiene la opción de real WebSocket transport, que puede funcionar mejor según sus deseos de implementación.

El hecho es que cualquiera de las dos cosas hará su trabajo, solo depende de sus deseos. Sugeriría crear una aplicación trivial en cada uno, y ver si las API de uno se sienten más naturales para ti.

Personalmente, estoy más inclinado a usar socket.io ... También diré que si necesita escalar usando clústeres, probablemente también necesite trazar una estrategia para usar un servidor de pub/sub (como redis) ya que diferentes solicitudes pueden llegar a procesos diferentes que no comparten el estado de la memoria.


También digno de mención, es que existe un marco similar para .Net llamado SignalR ...