2012-03-22 24 views
5

Attualmente sto usando Socket.IO con il negozio redis.Socket.IO con RabbitMQ?

E sto usando la funzione Room con esso.

Quindi sono assolutamente daccordo con camera join (sottoscrivi)

e Dare (unsubscribe) con Socket.IO.

Ho appena vedere questa pagina

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

E ho trovato che alcune persone stanno usando Socket.IO con RabbitMQ.

Perché utilizzare Socket.IO da solo non è sufficiente?

C'è qualche buona ragione per usare Socket.IO con rabbitMQ?

risposta

12

SocketIO è un browser -> meccanismo di trasporto del server mentre RabbitMQ è un server -> bus dei messaggi del server.

I due possono essere implementati insieme per creare un sistema molto reattivo in scenari in cui il viaggio dell'utente consiste in un messaggio che inizia la vita su un browser e finisce, ad esempio, in un livello di persistenza (come un database).

Un messaggio verrebbe trasportato al server Web tramite socketIO e quindi, anziché il server Web responsabile della persistenza del messaggio, lo lascerebbe su una coda di coniglio e lascerebbe qualche altro processo responsabile della sua persistenza. In questo modo, il web server è libero di tornare al suo servizio web assumendo le responsabilità e, soprattutto, diminuendo il suo carico.

+0

Così RabbitMQ può alleviare alcuni carichi pesanti dai messaggi persistenti. Raccomanderesti RabbitMQ di fronte a Socket.IO? In questo modo Socket.IO può essere altamente scalabile con cluster di server Socket.IO più piccoli ma con cluster di server RabbitMQ. Sono sulla buona strada? – InspiredJW

+0

Se ciò che intendi per "RabbitMQ davanti a Socket.IO" sta avendo una web farm che usa SocketIO per mediare le richieste dal client e quindi usare un cluster RabbitMQ per eliminare i messaggi destinati alla persistenza e quindi avere un set separato di servizi che consumano da RabbitMQ e persistono i messaggi in modo appropriato, quindi sì ;-) –

4

Dai un'occhiata a SockJS http://sockjs.org.

  1. E 'fatta dal team RabbitMQ
  2. E' più semplice di quanto Socket.io
  3. C'è un server Erlang per SockJS

Oltre a questo, v'è un progetto sperimentale all'interno del team RabbitMQ che intende per fornire un plugin SockJS per RabbitMQ.

+0

sarebbe abbastanza interessato a scoprire di più su quel progetto sperimentale. – skyork

+1

Ecco le note di rilascio ufficiali: http://www.rabbitmq.com/blog/2012/05/14/introducing-rabbitmq-web-stomp/ – Marek