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.

Monday, April 2, 2012

Over 10 Messages Delivered

Previously...
  • I made progress with a simple BOSH pass-through.
  • I got Pidgin to work with the pass-through.
  • I changed the format exchanged by ECM and megaphone

After a bit of work, I am able to connect to ejabberd using pidgin and megaphone.  To avoid some problems I am having with some plugins that I use with pidgin, I switched over to JWChat, a javascript client for BOSH systems.

JWChat is an awesome BOSH client, what's more it's quite fast when coupled with ejabberd.  Shout out to Stefan Strigler --- you did a great job with the development of this thing.

I am able to send and receive messages now, but there are some quirks.  While I can receive messages to a client connected to megaphone, messages sent from such a client seem to "stick" and avoid being delivered until the next message for the client is received.  I thought this might be caused by using the default value for TCP's "no delay" option (default value is false), but the problem persists when that option is set to true.  

An additional annoyance is that the socket that listens for new megaphone connections goes into a "time_wait" state if I restart ejabberd, necessitating a 60sec or so pause between cycles.  I tried using gen_tcp:close but that does not seem to help.

Next time: (hopefully) progress on the send/receive message front.

No comments:

Post a Comment