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:
xmpp.Open("myusername", "mysecret"); 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.
