Saturday, September 20, 2014

Experiments with XMPP framework

If do a search in Github, we can see a number of XMPP frameworks available. robbiehanson framework is the one thought to analyse first as this was the first to list in the search result. 

Note that we wont get the download link unless logging into git repository. 

Once logged in, the code can be downloaded directly. There are some dependancies for the project, which are explained like below 
Even though the framework has several dependancies, they don't need to be checked out separately. They are downloaded when the XMPPFramework is checked out. And these dependancies 
files are available in the Vendor folder. 

The first dependancy is CocoaLumberJack, which is a logging framework used in the project. Lumberjack doesn't have any sub-dependancies. 

The next dependancy is CocoaAsyncSocket, this is low level networking code used by the framework. The dependancy required for this is the CFNetwork framework. Again, this is included in the Vendor folder, 
This one require also Apple's security framework. 

Next dependancy is KissXML. Since Apple did not include NSXML in the iOS, the replacement is KissXML. This again is available inside the Vendor folder. 
KissXML uses libxmle internally.  

The 4th dependancy is libidn. Libidn's purpose is to encode and decode internationalized domain names. The library contains generic string prep implementation. Profiles for Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are included. Punycode and ASCII compatible encoding ACE are included. The libidn is a static library, compiled as a fat library to include many architectures. When compiling, the compiler will only include the used portion of the code and the size of the library will remain the same. 

Since preparing a new project, the following folders are to be added. 

Authentication
Catergories 
Core 
Utilities 

In addition, we need to add the libresolve.dlib which contains the DNS resolution functions. 

Thats pretty much it is. The project file contained within the folder were pretty much compiling immediately without giving a hassle. If the Jabber ID is given as gmail id and the password as gmail password, it fetches the list of users and lists their presence information. 

References: 



No comments:

Post a Comment