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 backend: 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 hacer ambas cosas fácilmente con RabbitMQ. RabbitMQ admite ambos casos, 1: N pubsub y mensajes 1: 1, 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 hace coincidir esta clave con los enlaces de suscripción en la tabla de enrutamiento (también conocido como "intercambio") por usted. Cada enlace representa una suscripción por una cola, que expresa interés en los mensajes con una clave de enrutamiento determinada. Cuando las claves de enrutamiento y enlace coinciden, el mensaje se enruta a las colas para su posterior consumo por los clientes (miembros del grupo). Esto funciona para 1: N y 1: 1 casos; con N: N construyendo 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 requieren:
* (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 hemos combinado la interfaz HTTP con el código ACL. Sin embargo, eso no debería retener a los oyu. Por favor, ve a la lista de rabbitmq-discuss donde este tema ha sido mencionado recientemente.
También requieren:
* 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 de grupos generalmente no es parte de un sistema de mensajería, en cambio, en RabbitMQ, usted crea patrones de enrutamiento utilizando suscripciones. Puede expulsar clientes específicos enviándoles mensajes con la clave que hayan utilizado para vincular su cola de consumo al intercambio.
Espero que esto ayude!
alexis
pero no tiene bibliotecas de Ruby, ¿verdad? –
aunque parece realmente interesante –
Puede escribir scripts de back-end en Actionscript, Python o Java, pero no parece que tenga enlaces JRuby. –