A while back, I volunteered to lead development of SparkWeb as a consequence of the work I have done with a commercial version of SparkWeb which was based on the red5 version in the old red5 plugin for Openfire. It has a number of interesting new features which include plugin architecture, audio/video support in 2-way chats, server-side mixed audio in multi-user chat rooms, a softphone phone with multi-line support, desktop screen sharing and activity streams incorporating public streams from Twitter/Facebook as well as internal streams using XMPP pub-sub.
Unfortunately, the memory footprint of this version is too large (200MB+) and I am very reluctant to push development of SparkWeb in that direction.
To reduce the footprint, I am considering the following:
- Drop XIFF and turn Redfire in to a Connection Manager and use AMF to call Openfire methods directly from Flash and vice-versa.
- Use a single encrypted RTMPE connection with multiplexed audio, video and remote method invocations for each SparkWeb client.
Of course, this would mean that SparkWeb would become tightly bound to Openfire and Redfire, but it could reduce the memory footprint dramatically and would also cut out the cross-domain and security issues associated with opening socket connections in Flash, consequently making the same code usable in a web browser and a desktop application with minor changes.