尤里,
RabbitMQ、Haxe 和 as3:http ://geekrelief.wordpress.com/2008/12/15/hxamqp-amqp-with-haxe/
RabbitMQ、Ruby 和 ACL: http: //pastie.org/pastes/368315
您可能还想看看将 Nanite 与 RabbitMQ 一起使用来管理后端组:http ://brainspl.at/articles/2008/10/11/merbcamp-keynote-and-introducing-nanite
你说你需要:
* broadcast messages by any client (1:N, N:N)
* (potentially) direct messages (1:1)
您可以使用 RabbitMQ 轻松完成这两项工作。RabbitMQ 支持两种情况,1:N pubsub 和 1:1 消息传递,以及“直接”交换。
直接交换模式如下:
任何发布者(组成员)使用“路由密钥”(例如“yurii”)向代理发送消息。RabbitMQ 将此键与路由表(也称为“交换”)中的订阅绑定相匹配。每个绑定代表一个队列的订阅,表示对具有给定路由键的消息的兴趣。当路由键和绑定键匹配时,消息会被路由到队列以供客户端(组成员)后续使用。这适用于 1:N 和 1:1 的情况;N:N 建立在 1:N 上。
路由模型介绍:http: //blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/
一般介绍:http: //google-ukdev.blogspot.com/2008/09/rabbitmq-tech-talk-at-google-london.html
您还需要:
* (important) authenticate/authorize clients with my own backend (say, through some kind of HTTP API)
请参阅此 ACL 代码(上面的链接)。RabbitMQ 还有一个 HTTP 接口,但我们还没有将 HTTP 前端与 ACL 代码结合起来。不过,这不应该阻止oyu。请来到最近讨论这个话题的rabbitmq-discuss列表。
您还需要:
* create groups (by some backend process)
* to be able to kick specific clients by backend process (or server plugin)
我建议看看像 Nanite 和 Workling 这样的工具是如何做到这一点的。组创建通常不是消息系统的一部分,相反,在 RabbitMQ 中,您使用订阅创建路由模式。您可以通过使用他们用来将其消费队列绑定到交换的任何键向他们发送消息来踢特定客户端。
希望这可以帮助!
亚历克西斯