Warning: Parameter 3 to renderBlockquote() expected to be a reference, value given in /home/acad/acain/www/htdocs/mediawiki/includes/parser/Parser.php on line 3243
Swin Messenger - SwinBrain

Swin Messenger

From SwinBrain

This article provides information about the technology overview behind the application.

Contents

What is Swin Messenger?

Swin Messenger is an instant messaging software that can connect to Extensible Messaging and Presence Protocol (XMPP) servers. Swin Messenger consist of object model that is independent of user interface (UI). Each of the main objects has its own GUI wrapper which listens and interacts with it own core object. A text-based interface has been developed around the model which reinforce the UI-independency of the model.

At the current specification, it can:

  • log in to an XMPP server
  • detect authentication error
  • get the list of all the contacts
  • receive and send messages from and to a contact
  • maintain the 'presence' of the contact
  • log out of the XMPP server

Swin Messenger project is available on Google Code.

Technologies

Swin Messenger interfaces with agsXMPP API which is released by AG-Software as open source under dual licence.

agsXMPP

agsXMPP was written in C# and can be used for XMPP server, client or component development. A message can be send to another client with three lines of code:

  1. XmppClientConnection xmpp = new XmppClientConnection("jabber.org");
  2. xmpp.Open("myusername", "mysecret");
  3. xmpp.OnLogin += delegate(object o) { xmpp.Send(new Message("test@jabber.org", MessageType.chat, "Hello, how are you?")); };

The main reason agsXMPP was selected as an API for this software is that it is written in C# and is dedicated to .NET and Mono technologies. agsXMPP makes implementation of an instant messaging software easier. The XML exchanging is handled by the API eliminating the need for writing or working on an XML parser, although XML can still be easily accessible if need to.

XMPP or Jabber


Jabber is an open set of streaming XML protocol and technologies allowing two user to be able to exchange messages, presence, and other structured information.

Jabber is a very popular protocol. It has been used by open community. Some commercial entities also adopt the protocol. Such entities are Google and Apple. Google Talk is a Jabber client. Apple's iChat is also a Jabber compatible client.

In this project, Google Talk has been used extensively for testing because of its availability.

Class Diagram

Class Diagram of Swin Messenger Core Objects

Links

  1. Swin Messenger:Hello World How To
  2. Swin Messenger How To
  3. Swin Messenger on Google Code
  4. Jabber Software Foundation
  5. agsXMPP SDK Home page