Question

Je me sens un peu genre peu confus - pendant environ 24 heures, j'ai pensé que la technologie de radiodiffusion de groupe à utiliser dans mon projet

.

En fait, ce que j'ai besoin est:

  • créer des groupes (par un processus back-end)
  • des messages diffusés par un client (1: N, N: N)
  • (potentiellement) des messages directs (1: 1)
  • (important) authentifier / autoriser les clients avec mon propre backend (par exemple, par une sorte de HTTP API)
  • pour être en mesure de lancer des clients spécifiques par un processus back-end (ou plug-in du serveur)

Voici ce que je ferai:

  1. processus lié backend-(es) dans les deux ou Ruby Haxe
  2. Frontend dans JS + Haxe (Flash9) -. Dans le navigateur, donc idéalement communiquant par 80/443, mais pas nécessairement

Alors, cette technologie devra être facilement accessible en Haxe pour Flash et de préférence Ruby.

J'ai pensé à: RabbitMQ (ou OpenAMQ), RabbitMQ + STOMP, ejabberd, ejabberd + BOSH, mastodonte (avec un besoin d'écrire un Haxe lib pour elle)

.

Toutes les idées / suggestions?

Était-ce utile?

La solution

Si vous allez faire dev Flash avez-vous regardé SmartFoxServer? Il a tout ce que vous voulez et possède des bibliothèques de client Flash natif. Je sur un projet pour gérer 10s de milliers d'utilisateurs connectés.

http://www.smartfoxserver.com/

Autres conseils

Yurii,

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

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

Vous pouvez également regarder à l'aide de nanites avec RabbitMQ pour gérer les groupes back-end: http://brainspl.at/articles/2008/10/11/merbcamp-keynote-and-introducing-nanite

Vous dites que vous avez besoin:

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

Vous pouvez facilement faire à la fois en utilisant RabbitMQ. RabbitMQ prend en charge les cas, 1: N PubSub et 1: 1 messagerie, avec des échanges 'directs'.

Le motif de l'échange direct est le suivant:

Tout éditeur (membre du groupe) envoie un message au courtier avec un tel « clé de routage » comme « yurii ». RabbitMQ correspond à cette touche avec les fixations de souscription dans la table de routage (alias « d'échange ») pour vous. Chaque liaison représente un abonnement par une file d'attente, exprimant un intérêt dans les messages avec une clé de routage donné. Lorsque le routage et les clés de liaison correspondant, le message est ensuite acheminé vers les files d'attente pour la consommation ultérieure par les clients (membres du groupe). Cela fonctionne pour 1: N et 1: 1 cas; avec N: Surface N sur 1. N

Introduction au modèle de routage: http: // blogs. digitar.com/jjww/2009/01/rabbits-and-warrens/

Introduction générale: http: //google-ukdev.blogspot.com/2008/09/rabbitmq-tech-talk-at-google-london.html

Vous avez également besoin:

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

S'il vous plaît voir le code ACLs pour ce (lien ci-dessus). Il y a aussi une interface HTTP pour RabbitMQ mais nous avons pas encore combiné l'extrémité avant HTTP avec le code ACL. Cela ne devrait pas tenir Oyu dos bien. S'il vous plaît venir à la rabbitmq-liste de discussion où ce sujet a été parlé récemment.

Vous avez également besoin:

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

Je suggère de voir comment des outils tels que nanites et Workling font. la création du groupe ne sont généralement pas partie d'un système de messagerie, à la place, dans RabbitMQ, vous créez des modèles de routage à l'aide des abonnements. Vous pouvez lancer des clients spécifiques en envoyant des messages à leur par quelle que soit la clé qu'ils ont utilisé pour lier leur file d'attente consommatrice à l'échange.

Hope this helps!

alexis

Bien communication de groupe est une bête légèrement différente de celle de simples messages / faire la queue.

La plupart des systèmes de communication de groupe sont commerciales, mais il y a deux (que je connais) open source / libre, vous pouvez jeter un oeil à:

Ces deux pourrait être difficile de trouver des liaisons Ruby bien. Propagation, et probablement OpenAIS, voir les clients en confiance donc un client basé sur le navigateur n'a pas de sens. Vous aurez besoin d'avoir votre front-end navigateur parler à un client de groupe (s) sur le back-end.

Nous utilisons ActiveMQ. Notre fournisseur qui fournit notre système RH utilise Ruby / ActiveMQ pour diffuser et recevoir des mises à jour.

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

D'autres courtiers de message open source qui prennent en charge le protocole Stomp sont OpenMQ, qui est inclus dans GlassFish V3 et GlassFish 2.1.1, mais fonctionne également autonome, et bientôt le courtier de messages JBoss, HornetQ V2.1. OpenMQ prend en charge les files d'attente temporaires qui sont utiles pour une communication de type RPC, mais ActiveMQ offre quelques fonctionnalités intéressantes dans l'adaptateur Stomp aussi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top