Most Powerful Open Source ERP

OfficeJS: Nexedi releases HTML5 Jabber Client

Nexedi is a member of the Open PaaS research project aiming to develop an open-source alternative to Google Docs and other similar cloud-based solutions for communication and collaboration. As part of Open PAAS Nexedi has just released a new version of our XMPP Jabber Client on Officejs.com adding offline contact chat history availability and improved error handling.
  • Last Update:2015-09-09
  • Version:001
  • Language:en

The 101 on XMPP

The Extensible Messaging and Presence Protocol (XMPP) is a communication protocol orginally developed by the Jabber open source community in 1999 as a tool for instant messaging and has been used for a wide range of publish-subscribe systems throughout the years. Web-based XMPP clients like the one Nexedi is developing und using internally are implemented using Bidirectional-streams Over Synchronous HTTP (BOSH), a transport protocol that simulates a bidirectional stream between two entities (for example client and server) to allow exchanging message as soon as they are sent by using multiple synchronous HTTP request/response pairs.

The Open-PAAS Project

Launched in August of 2015, the Open PAAS project aims to create competitive open source alternatives to Google Docs, Office365 and similar cloud-based communication and collabroation tools. One of the key objectives of the Open PAAS project and important differentiation criteria to other "desktop" open source projects shifting to the cloud (Libre Office, Open Office) is the focus on data privacy and the ability of users to keep full control over the data they generate and collaborate on.

Nexedi role in Open-PAAS: OfficeJS

Within our internal UNG project, Nexedi has been working on various web based document editors and communication tools for quite some time. Lately efforts have been channeled into officejs.com, Nexedis HTML5 Web App Store, which aims to provide web-based, offline-ready productivity applications ranging from task managers, editors to various communication tools - including our Jabber client. This puts us straight on track for the Open-PAAS project, in which we will focus on both providing specific components and applications as well as our expertise in cloud solutions through SlapOS.

Nexedi New Jabber Client

Our Jabber client has been in use internally for quite some time and everyone at Nexedi is suggesting improvements to eventually be added to the client. The main feature making its way into this release is the visibility of offline contacts along with chat history accessibility. Before, we could access the chat history of a contact while the user himself was online. With the new release this constraint has been removed making the chat protocoll accessible independent of a contact's connection status. In addition, there is a also a new password reset option to go along with a rework of error handling taking better care of timed-out sessions and failed login attempts.


Screenshot: Jabber Client Login

Under the Hood - RenderJS and jIO

Our Jabber Client was one of the first applications written using our two front end frameworks RenderJS and jIO. The application is fully built using RenderJS gadgets (reusable components made from HTML, JavaScript and CSS) and with the latest update utilizes jIO to maintain a chat history in the browser's storage (indexedDB) keeping conversion histories on the respective users' devices. The additional advantage of using our two standard front-end frameworks is ease of integration with other applications being written using RenderJS. This way our jabber client could also be used as a drop-in chat system whenever needed with the storage being switched to the source and destination of communication data.


Screenshot: Jabber Client Contact List

Roadmap

We are still adding more features to the client mostly related to conifgurability (server to connect, storage to use) before it will become our first productivity app to be officially released. If you already want to try the current version, you can find it stored as a business template in the ERP5 website. Once we are ready to go fully public, we will bring another blog post with tutorial, so stay tuned.