What is Megaphone?

What is Megaphone?
The Megaphone project is about enhancing open source chat software. Specifically, the goal is to allow ejabberd to support 1,000,000 simultaneous users. See The Plan page for more details on how I plan to solve this problem. See the About this Blog page for more details on why I created this blog.

Tuesday, December 13, 2011

Of Pain and Stanzas

I modified NXB to send out the stream:features stanza inside the first body stanza that it sends back to the client.  Unfortunately, Pidgin still did not work.

I resolved to see what the differences were between the initial output of the two programs in the hope that this is something that can be cleared up by just modifying the initial response to Pidgin.  I used a modified version of my simple erlang relay program to see what the differences were between what NXB was sending out and what ejabberd was sending.  Aside from cosmetic differences (for example, ejabberd uses single quotes instead of double quotes to surround its attributes), here is what I saw:

  • ejabberd has the following attributes that NXB is missing:
    • maxpause
    • ver
    • secure
    • authid
    • xmlns:stream
    • xmpp:version
  • NXB has the following attributes that ejabberd is missing
    • stream
    • hold
    • content
    • xmpp:restartlogic
    • window
The next step, as I see it, is to ensure that none of these differences violate the BOSH spec, and then minimize the differences.  

Oh boy.

And here I was hoping that just including the features in the first stanza returned would fix everything.

No comments:

Post a Comment