2012-03-22 27 views
5

Actualmente estoy usando Socket.IO con la tienda redis.Socket.IO con RabbitMQ?

Y estoy usando la función de Habitación con él.

Así que estoy totalmente de acuerdo con el sitio join (suscribirse)

y Permisos (darse de baja) con Socket.IO.

acabo de ver esta página

http://www.rabbitmq.com/blog/2010/11/12/rabbitmq-nodejs-rabbitjs/

Y he encontrado que algunas personas están utilizando Socket.IO con RabbitMQ.

¿Por qué usar Socket.IO solo no es suficiente?

¿Hay alguna buena razón para usar Socket.IO con rabbitMQ?

Respuesta

12

SocketIO es un navegador -> mecanismo de transporte del servidor, mientras que RabbitMQ es un servidor -> servidor de bus de mensajes.

Los dos pueden implementarse juntos para crear un sistema muy receptivo en escenarios donde un viaje de usuario consiste en un mensaje que comienza en un navegador y termina en, por ejemplo, una capa de persistencia (como una base de datos).

Un mensaje sería transportado al servidor web a través de socketIO y luego, en lugar de que el servidor web fuera el responsable de persistir en el mensaje, lo colocaría en una cola de Conejo y dejaría otro proceso responsable de su persistencia. De esta forma, el servidor web puede volver a sus responsabilidades de servicio web y, lo que es más importante, a disminuir su carga.

+0

Por lo tanto, RabbitMQ puede aliviar algunas cargas pesadas de mensajes persistentes. ¿Recomiendas usar RabbitMQ frente a Socket.IO? De esta forma, Socket.IO puede ser altamente escalable con los clústeres de servidores Socket.IO más pequeños pero con los clústeres de servidores RabbitMQ. ¿Estoy en el camino correcto? – InspiredJW

+0

Si lo que quiere decir con "RabbitMQ frente a Socket.IO" es tener una granja de servidores web que utiliza SocketIO para intermediar las solicitudes del cliente y luego usar un clúster RabbitMQ para colocar mensajes destinados a la persistencia y luego tener un conjunto separado de servicios que consumen de RabbitMQ y persisten los mensajes apropiadamente, entonces sí ;-) –

4

Eche un vistazo a SockJS http://sockjs.org.

  1. Está hecho por el equipo RabbitMQ
  2. Es más sencillo de Socket.io
  3. Hay un servidor de Erlang para SockJS

Aparte de eso, hay un proyecto experimental dentro del equipo RabbitMQ que pretende para proporcionar un complemento SockJS para RabbitMQ.

+0

estarían muy interesados ​​en saber más acerca de ese proyecto experimental. – skyork

+1

Aquí están las notas de la versión oficial: http://www.rabbitmq.com/blog/2012/05/14/introducing-rabbitmq-web-stomp/ – Marek