Domanda

Mi sento un po 'un po' confuso - per circa 24 ore ho pensato che la tecnologia di trasmissione di gruppo da utilizzare nel mio progetto

.

In sostanza, quello che mi serve è:

  • creare gruppi (da qualche processo di backend)
  • messaggi broadcast da qualsiasi client (1: N, N: N)
  • (potenzialmente) messaggi diretti (1: 1)
  • (importante) l'autenticazione / autorizzazione i clienti con la mia backend (per esempio, attraverso una sorta di HTTP API)
  • per essere in grado di dare il client specifici per processi di back-end (o plugin del server)

Ecco quello che avrò:

  1. backend legati processo (es) sia in Ruby o Haxe
  2. Frontend in JS + Haxe (Flash9) -. Nel browser, in modo idealmente comunicare attraverso 80/443, ma non necessariamente

Quindi, questa tecnologia dovrà essere facilmente accessibile in Haxe per Flash e preferibilmente Ruby.

Ho pensato: RabbitMQ (o OpenAMQ), RabbitMQ + STOMP, ejabberd, ejabberd + BOSH, Juggernaut (con la necessità di scrivere un lib Haxe per esso)

.

Tutte le idee / suggerimenti?

È stato utile?

Soluzione

Se avete intenzione di fare Flash dev hai guardato SmartfoxServer? Ha tutto ciò che si desidera e ha librerie client nativo di Flash. Ho usato in un progetto per la gestione 10s di migliaia di utenti collegati.

http://www.smartfoxserver.com/

Altri suggerimenti

Yurii,

RabbitMQ, Haxe e AS3: http: // geekrelief.wordpress.com/2008/12/15/hxamqp-amqp-with-haxe/

RabbitMQ, Ruby e ACL: http://pastie.org/pastes/368315

Si potrebbe anche voler guardare con Nanite con RabbitMQ di gestire gruppi di backend: http://brainspl.at/articles/2008/10/11/merbcamp-keynote-and-introducing-nanite

Tu dici è necessario:

* broadcast messages by any client (1:N, N:N)
* (potentially) direct messages (1:1)

Si può facilmente fare entrambe le cose usando RabbitMQ. RabbitMQ supporta entrambi i casi, 1: N PubSub e 1: 1 di messaggistica, con scambi 'diretti'.

Il modello di scambio diretto è il seguente:

Ogni inserzionista (membro del gruppo) invia un messaggio al broker con una 'chiave di routing' come "Yurii". RabbitMQ corrisponde a questo tasto con le associazioni di sottoscrizione nella tabella di routing (alias "scambio") per voi. Ogni legame rappresenta un abbonamento da una coda, esprimendo interesse per i messaggi con una data chiave di routing. Quando i tasti di legame di routing e corrispondono, il messaggio viene quindi instradato verso le code per il successivo consumo da parte dei clienti (membri del gruppo). Questo funziona per 1: N e 1: 1 dei casi; con N: edificio N su 1:. N

Introduzione al modello di routing: http: // blog. digitar.com/jjww/2009/01/rabbits-and-warrens/

intro Generale: http: //google-ukdev.blogspot.com/2008/09/rabbitmq-tech-talk-at-google-london.html

Si richiedono anche:

* (important) authenticate/authorize clients with my own backend (say, through some kind of HTTP API)

Si prega di vedere il codice ACL per questo (link qui sotto). C'è anche un'interfaccia HTTP per RabbitMQ, ma non abbiamo ancora unito il front-end HTTP con il codice ACL. Questo non dovrebbe tenere Oyu indietro però. Si prega di venire alla lista RabbitMQ-discutere di questo tema, dove si è parlato di recente.

Si richiedono anche:

* create groups (by some backend process)
* to be able to kick specific clients by backend process (or server plugin)

Suggerisco di guardare come strumenti come Nanite e 'attuabile farlo. creazione del gruppo di solito non è parte di un sistema di messaggistica, invece, in RabbitMQ, si creano i modelli di instradamento utilizzando abbonamenti. È possibile dare il client specifici con l'invio di messaggi a loro da qualunque chiave hanno usato per legare la loro coda di consumo allo scambio.

Spero che questo aiuti!

alexis

Bene la comunicazione di gruppo è una bestia leggermente diversa da quella semplice di messaggistica / accodamento.

La maggior parte dei sistemi di comunicazione di gruppo sono commerciali, ma ce ne sono due (che io sappia) open-source / gratuito è possibile dare un'occhiata a:

Entrambi questi potrebbe essere difficile trovare attacchi di Ruby però. Spread, e probabilmente OpenAIS, vista clienti come attendibile, in modo un client basato su browser non ha senso. Avresti bisogno di avere il browser front-end parlare con un cliente gruppo (s) sul back-end.

Stiamo usando ActiveMQ. Il nostro fornitore che fornisce il nostro sistema HR sta usando Rubino / ActiveMQ per trasmettere e ricevere gli aggiornamenti.

http://activemq.apache.org/cross-language-clients.html

Altri broker di messaggi open source che supportano il protocollo Stomp sono OpenMQ, che è incluso nel GlassFish V3 e GlassFish 2.1.1 ma funziona anche stand-alone, e ben presto il broker messaggio JBoss, HornetQ V2.1. OpenMQ supporta code temporanee che sono utili per una comunicazione stile RPC, ma ActiveMQ offre alcune caratteristiche interessanti l'adattatore Stomp troppo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top