I have updated the XIFF library to be compatible with BOSH 1.6. As SparkWeb is based on XIFF, most of the information here also applies to SparkWeb. Main good news are:
- Login phase and communication using BOSH is noticeably faster thanks to new overactivity rules of 1.6.
- BOSH connection is tested and working with Openfire, Tigase and ejabberd.
Additional Work
- Added logging support to XIFF using Flex logging API (mx.logging).
- Moved SASL logic from XMPPBOSHConnection to XMPPConnection, so now both connection types (BOSH and socket) share the same authentication code. Previously, socket connection was using non-SASL authentication.
- Cleaned up some dead code and made BOSH connection class more configurable.
- Fixed a few Openfire BOSH issues that appeared when testing XIFF.
Known Issues
This updated version of XIFF will be fully compatible with the updated Openfire and Openfire’s BOSH update will be included in version 3.6.x. However, there is an issue with Openfire versions released before the update.
According to XEP-0206, after a successful authentication, clients should send a body with xmpp:restart attribute set to true. But older Openfire versions do not recognize xmpp:restart, handling the request as if it was a polling request. Thus, it responds to the client after 30 seconds.
If you use the updated version of XIFF or SparkWeb with a version of Openfire that does not support BOSH 1.6 (i.e. lower than 3.6), please be aware that you will be experiencing a latency of 30 seconds during logins.