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.

Wednesday, December 14, 2011

Hurling Chunks

Previously on the megaphone blog I outlined some of the differences between the session creation respond packet that ejabberd and NXB generate.  According to the spec (http://xmpp.org/extensions/xep-0124.html) the following attributes are missing from the NXB body tag:
  • 'ver' -- This attribute specifies the highest version of the BOSH protocol that the connection manager supports, or the version specified by the client in its request, whichever is lower.
  • 'to' -- This attribute communicates the identity of the backend server to which the client is attempting to connect.

Strangely enough, neither server includes the "to" attribute in their response, despite the fact that the spec explicitly calls for it.

At any rate, adding the ver attribute did not seem to make a difference. 

I switched over to wireshark and noticed that NXB was using chunked encoding whereas ejabberd was not.  The docs say that to turn off chunked encoding, you need to set a content-length so I did that and immediately noticed that the conversation between NXB and Pidgin lasted longer.  

This brought me to the current brick wall: Pidgin complains about getting an "Invalid response from server."  What is invalid about the response?  Beats me.  Looking around I did not find any way of displaying a more detailed error message for Pidgin short of creating a plugin or perhaps starting it from the command line.

Next step is to take a look at the differences between the conversations between ejabberd and NXB and see if I can spot any differences.

And I still don't know if putting the features stanza in the first response made any difference.

Fooies.

Postscript: I tried out running pidgin from the command line and displaying the debug log.  Go me!

No comments:

Post a Comment