Frage

Ich fühle mich ein wenig Art verwirrt - für etwa 24 Stunden habe ich die Gruppe Sendetechnik gedacht in meinem Projekt verwenden

.

Im Grunde, was ich brauche, ist:

  • Gruppen erstellen (durch einen Back-End-Prozess)
  • Broadcast-Nachrichten von jedem Client (1: N, N: N)
  • (potentiell) Direktnachrichten (1: 1)
  • (wichtig) authentifizieren / autorisieren Kunden mit eigener Backend (sagen sie, durch eine Art von HTTP API)
  • der Lage sein, bestimmte Kunden von Back-End-Prozess (oder Server-Plug-in)
  • Kick

Hier ist, was ich habe:

  1. Backend-bezogenen Prozess (e) entweder in Rubin- oder Haxe
  2. Frontend in JS + Haxe (Flash9.) - in Browser, so dass ideal Kommunikation über 80/443, aber nicht unbedingt

So wird diese Technologie sein müssen leicht zugänglich in Haxe für Flash und vorzugsweise Rubin.

Ich habe darüber nachgedacht: RabbitMQ (oder OpenAMQ), RabbitMQ + STOMP, ejabberd, ejabberd + BOSH, Moloch (mit einer Notwendigkeit, eine Haxe lib für sie zu schreiben)

.

Irgendwelche Ideen / Anregungen?

War es hilfreich?

Lösung

Wenn Sie vorhaben, tun Flash-Entwickler werden, haben Sie bei SmartFoxServer geschaut? Es hat alles, was Sie wollen, und besitzt eine native Flash-Client-Bibliotheken. Früher habe ich in an einem Projekt 10s von Tausenden von verbundenen Benutzern zu verwalten.

http://www.smartfoxserver.com/

Andere Tipps

Jurij,

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

RabbitMQ, Ruby und ACLs: http://pastie.org/pastes/368315

Sie können auch bei Verwendung Nanite mit RabbitMQ aussehen wollen Backend-Gruppen zu verwalten: http://brainspl.at/articles/2008/10/11/merbcamp-keynote-and-introducing-nanite

Sie sagen, Sie brauchen:

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

Sie können beide leicht tun RabbitMQ verwenden. RabbitMQ unterstützt beiden Fällen 1: N PubSub und 1: 1-Messaging, mit 'direkten' Austausch.

Der direkte Austausch Muster ist wie folgt:

Jeder Verlag (Gruppenmitglied) sendet eine Nachricht an den Broker mit einem ‚Routing-Schlüssel‘ wie „yurii“. RabbitMQ Spiele in diesen Schlüssel mit Abonnement-Bindungen in der Routing-Tabelle (auch bekannt als „Austausch“) für Sie. Jede Bindung stellt eine Zeichnung durch eine Warteschlange, in Nachrichten mit einem vorgegebenen Routing-Key-exprimierenden Interesse. Wenn die Routing- und Bindungsschlüssel übereinstimmt, wird die Nachricht dann zum nachfolgenden Verbrauch von Kunden (Gruppenmitgliedern) an Warteschlangen weitergeleitet. Dies funktioniert für 1: N und 1: 1 Fälle; mit N: N Gebäude auf. 1: N

Einführung in das Routing-Modell: http: // blogs. digitar.com/jjww/2009/01/rabbits-and-warrens/

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

Zusätzlich benötigen Sie:

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

Bitte beachten Sie den ACLs Code für diesen (Link oben). Es gibt auch eine HTTP-Schnittstelle zu RabbitMQ aber wir haben noch nicht den HTTP-Frontend mit dem ACL-Code kombiniert. Das sollte oyu allerdings nicht zurückhalten. Bitte kommen Sie zu der rabbitmq-discuss Liste, wo dieses Thema über, gesprochen wurde.

Zusätzlich benötigen Sie:

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

Ich schlage vor, schauen, wie Tools wie Nanite und Workling tun. Gruppenerstellung ist nicht in der Regel Teil eines Messaging-Systems, sondern in RabbitMQ, Sie Routing-Muster unter Verwendung von Abonnements erstellen. Sie können bestimmte Kunden treten, indem sie Nachrichten an sie zu senden, indem je nachdem, welche Taste sie verwendet haben ihre verzehr Warteschlange auf den Austausch zu binden.

Hope, das hilft!

alexis

Nun Gruppenkommunikation ist ein etwas anderes Tier als einfacher Messaging / Schlange steht.

Die meisten Gruppenkommunikationssysteme sind kommerziell, aber es gibt zwei (die ich kenne) Open-Source / Free können Sie einen Blick auf:

Beide könnten hart sein, obwohl Ruby-Bindungen zu finden. Verbreitung und wahrscheinlich OpenAIS, sehen Kunden vertraut wie so ein Browser-basierte Client keinen Sinn macht. Sie müssen Ihren Browser Front-Ends zu einer Gruppe Client (s) auf dem Back-End sprechen haben.

Wir haben ActiveMQ im Einsatz. Unser Anbieter, der unser HR-System liefert, mit Ruby / ActiveMQ-Updates zu übertragen und zu empfangen.

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

Andere Open-Source-Nachrichtenvermittler, die die Stomp-Protokoll unterstützen, sind OpenMQ, die in Glassfish V3 und Glassfish 2.1.1 enthalten ist, funktioniert aber auch eigenständige, und bald die JBoss Message Broker, HornetQ V2.1. OpenMQ unterstützt temporäre Warteschlangen, die für einen RPC-Stil Kommunikation nützlich sind, aber ActiveMQ bietet einige interessante Features in der Stomp-Adapter zu.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top