Search code examples
rubyxmppamqphaxestomp

Which group messaging technology to use?


I feel a little bit kind of confused — for about 24 hours I have been thinking which group broadcasting technology to use in my project.

Basically, what I need is:

  • create groups (by some backend process)
  • broadcast messages by any client (1:N, N:N)
  • (potentially) direct messages (1:1)
  • (important) authenticate/authorize clients with my own backend (say, through some kind of HTTP API)
  • to be able to kick specific clients by backend process (or server plugin)

Here is what I will have:

  1. Backend-related process(es) in either Ruby or Haxe
  2. Frontend in JS+Haxe(Flash9) — in browser, so ideally communicating through 80/443, but not necessarily.

So, this technology will have to be easily accessible in Haxe for Flash and preferably Ruby.

I've been thinking about: RabbitMQ (or OpenAMQ), RabbitMQ+STOMP, ejabberd, ejabberd+BOSH, juggernaut (with a need to write a Haxe lib for it).

Any ideas/suggestions?


Solution

  • If you are going to be doing Flash dev have you looked at SmartfoxServer? It has everything you want and has native Flash client libraries. I used in on a project to manage 10s of thousands of connected users.

    http://www.smartfoxserver.com/