Skip navigation
All Places > Ignite Realtime Blog > 2011 > September

If you use openfire-jappix plugin on your server, you should update to version 0.0.2 which uses the the new 0.8 package


Please read



Ignite Realtime community is happy to release OfChat (Openfire Chat), a Google Chrome extension that puts a chat toolbar on any web site you want so you don't have to switch back and forth between tabs or have to resize your browser window to include your desktop chat application on your screen.




OfChat does not require a front-end Apache web server or middle-man BOSH server and connects directly with Openfire eliminating the cross-domain issues associated with web browser application like SparkWeb, Jappix or Candy. With WebSockets, it is as fast as a chat desktop application. It also uses Google Alerts when the Chrome window is minimised.


OfChat is based on on Gtalklet for by Sean Zheng and has been modified to work with Openfire BOSH and the WebSockets Plugin for Openfire 3.7.1. It uses Strophe JavaScript library by Jack Moffitt and includes a new Openfire.Connection class which implements the full Strophe.Connection class for Openfire WebSockets. Openfire.Connection should work with other Stophe based applications as a direct replacement for Strophe.Connection..


OfChat does not have a conventional roster display with groups. You have to start typing into the search area to filter a list of contacts in Google search style and like the new Facebook contact list view. In order to see only online contacts, just press spacebar as your first character. Support for MUC (group-chat) has been added, but you will need the Openfire client management plugin to create user group chat bookmarks.


Support for WebRTC audio and video has also been added.


To install from Chrome, just click on this link.


After you install the extension, go to the extension's preferences and enter your Openfire account credentials. Enter your Openfire BOSH URL. It is usually http://your_server:7070/http-bind/. Please don't select WebSockets unless you have upgraded your Openfire server to use jetty 7.5.1+ and running the WebSockets plugin. Once you've signed in, reload one of your tabs and you should see it pop up in the lower right-hand corner. Once you see it in the corner of your screen, just hit the grey circle to log in. Once you log in, you can set status as normal. Click the plus sign as many times you need to search for a contact and start a new chat.You can block it from showing up on certain sites from the extension's preferences.

This is an implementation of WebSockets for the Openfire XMPP server. It consists a plugin for Openfire and a low-level JavaScript library suitable to be used with jQuery.



Recently, I have been involved in shaping an XMPP protocol extension (XEP) for simple application remote control of telephony devices for financial trading systems. This XEP is called Openlink and is still evolving.


I use XMPP Bosh to provide an Openlink Javascript library for web based applications and I am seeking to improve performance and scalability beyond the limitations of long-polling BOSH connections, so I decided to investigate replacing BOSH with Websockets in my Openlink Javascript library.

What did you do?

The Websocket protocol is close to finalising and Jetty (the embedded web server for Openfire) has been supporting WebSocket since Nov 2009 in version 7.0.1 which is the Jetty version in current Openfire 3.7.0. My first attempt of using the Jetty WebSocketServelet? class from Openfire 3.7.0 with Google Chrome web browser failed and I am not sure why. The WebSockets specification has changed a lot over the last two years and both Chrome and Jetty have kept up with it, so I was not surprised.


I therefore decided to recompile Openfire from SVN (version 3.7.1 Alpha) with latest Jetty 7.5.1 and finally got it working.



I then implemented a very thin XMPP stanza based Javascript class called openfire-websockets which exposes a minimium "Stophe" like connection object which I tested with the XMPP console application in chapter 4 of the book "Professional XMPP Programming with JavaScript and jQuery" by Jack Moffitt.





You can use this plugin from Openfire 3.7.0. Just replace openfire.jar and slf4j-log4j12.jar in OPENFIRE_HOME\lib.

Should I?

If you do most of your application development with XMPP like I do, using Openfire and need fast and simple access to the low level XMPP messages as DOM elements in Javascript from JQuery right now, then take a look at openfire-websockets.js



ej-Technologies has granted a multi-plattform license of install4j to the Spark community. The community developers gladly accept the donation to the project. This will give all core developers of Spark the opportunity to use the features of install4j for during the development of the Spark installer.


Install4j is the installation plattform for Spark since many years and has helped to provide multi-plattform support and great integration in the operation systems.


About ej-Technologies:
ej-technologies GmbH was founded in 2001 as a privately held company and specializes in solutions that help programmers make the most of their        own applications. With its focused expertise in the areas of performance and deployment, ej-technologies is developing the next generation of enterprise application development tools.


If you have any questions regarding install4j and it's usage during the Spark development, please contact me via community mail.


Kind regards,

Walter Ebeling



again an experimental Smack to fix IBB transfers for Spark 2.6.3. This is an experimental build with patches based on the Smack 3.2. branch. The patch itself is published in SMACK-351


The Smack code is not using IQ Stanzas for IBB file transfer since the implementation is not correct.  Smack 3.2.1 also breaks file transfers via IBB to Spark 2.5.8. This alpha should fix:


SMACK-350                    Bytestream is not working in Spark 2.6.3 from XP to W7

SMACK-349                    Smack's IBB sends too much data in a packet

SMACK-263                    Set file info in all send* methods

SMACK-335                    Need to set file size and name for outgoing file transfer from input stream



Copy into the lib folder of the Spark installation folder and report results.



P.S. Also fixes SASL against jabberd2 since is included.

Filter Blog

By date: By tag: