Pregunta

Me siento un poco confundido poco de tipo - durante unas 24 horas he estado pensando que la tecnología grupo de radiodifusión a utilizar en mi proyecto

.

Básicamente, lo que necesito es:

  • crear grupos (por algún proceso backend)
  • mensajes de difusión por cualquier cliente (1: N, N: N)
  • (potencialmente) mensajes directos (1: 1)
  • (importante) autenticar / autorizar a los clientes con mi propio backend (por ejemplo, a través de algún tipo de API HTTP)
  • para ser capaz de patear clientes específicos por proceso en segundo plano (o plug-in del servidor)

Esto es lo que voy a tener:

  1. Relacionado con Backend-proceso (s) en cualquiera de Rubí o Haxe
  2. frontend en JS + Haxe (Flash9) -. En el navegador, por lo que idealmente la comunicación a través 80/443, pero no necesariamente

Por lo tanto, esta tecnología tendrá que ser de fácil acceso en Haxe para Flash y preferiblemente Ruby.

He estado pensando acerca de: RabbitMQ (o OpenAMQ), RabbitMQ + Stomp, ejabberd, ejabberd + BOSH, gigante (con una necesidad de escribir un lib Haxe para ello)

.

Todas las ideas / sugerencias?

¿Fue útil?

Solución

Si usted va a estar haciendo dev flash has mirado SmartfoxServer? Tiene todo lo que quiere y tiene bibliotecas de cliente nativos de Flash. He utilizado en un proyecto para gestionar 10s de miles de usuarios conectados.

http://www.smartfoxserver.com/

Otros consejos

Yurii,

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

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

También puede ser que desee buscar en el uso nanite con RabbitMQ para gestionar grupos de back-end: http://brainspl.at/articles/2008/10/11/merbcamp-keynote-and-introducing-nanite

Usted dice que necesita:

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

Puede hacerlo fácilmente usando tanto RabbitMQ. RabbitMQ soporta ambos casos, 1: N pubsub y 1: 1 de mensajería, con intercambios 'directos'.

El patrón de intercambio directo es como sigue:

Cualquier editor (miembro del grupo) envía un mensaje al corredor con un 'clave de enrutamiento' tal como "yurii". RabbitMQ coincide con esta clave con los enlaces de suscripción en la tabla de enrutamiento (también conocido como "intercambio") para usted. Cada unión representa una suscripción por una cola, expresando interés en los mensajes con una clave de enrutamiento dado. Cuando el enrutamiento y las teclas de unión coinciden, el mensaje se enruta a las colas para el consumo posterior por parte de los clientes (miembros del grupo). Esto funciona para 1: N y 1: 1 de los casos; con N: edificio N en 1:. N

Introducción al modelo de enrutamiento: http: // blogs. digitar.com/jjww/2009/01/rabbits-and-warrens/

Introducción general: http: //google-ukdev.blogspot.com/2008/09/rabbitmq-tech-talk-at-google-london.html

También necesita:

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

Por favor, ver el código ACL para esto (enlace anterior). También hay una interfaz HTTP para RabbitMQ pero aún no se han combinado la parte delantera HTTP con el código ACL. Eso no debería contener Oyu volver aunque. Por favor venga a la lista RabbitMQ-discutir en este tema se ha hablado recientemente.

También necesita:

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

Sugiero mirar cómo herramientas como nanite y Workling hacen esto. la creación del grupo no suele ser parte de un sistema de mensajería, en cambio, en RabbitMQ, se crea patrones de enrutamiento mediante suscripciones. Se puede poner de clientes específicos mediante el envío de mensajes a ellos por lo clave que han utilizado para obligar a su cola de consumo para el intercambio.

Espero que esto ayude!

Alexis

Bien comunicación de grupo es una bestia ligeramente diferente a la mensajería sencilla / cola.

La mayoría de los sistemas de comunicación de grupo son comerciales, pero hay dos (que yo sepa) de código abierto / libre se puede echar un vistazo a:

Ambos de estos puede ser difícil encontrar los enlaces de Rubí sin embargo. Difusión, y probablemente OpenAIS, ver los clientes como de confianza por lo que un cliente basado en navegador no tiene sentido. Se necesitaría tener su navegador frontales de hablar con un cliente (s) en el grupo de servicios de fondo.

Hemos estado utilizando ActiveMQ. Nuestro proveedor que suministra nuestro sistema de recursos humanos está utilizando Rubí / ActiveMQ para transmitir y recibir actualizaciones.

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

Otros intermediarios de mensajes de código abierto que soportan el protocolo pisa fuerte son OpenMQ, que se incluye en GlassFish V3 y GlassFish 2.1.1, pero también funciona de forma independiente, y pronto el intermediario de mensajes de JBoss, HornetQ V2.1. OpenMQ soporta colas temporales que son útiles para una comunicación estilo RPC, pero ActiveMQ ofrece algunas características interesantes en el adaptador pisa fuerte también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top