Skip to content

Categories:

The disappointing truth

Things on my side have been very hectic the last few weeks, so hectic that I havn’t had time to work on my client at all.

So sadly, I wont be handing in my client in time for the competition.

Its sad, but true… But do not fear, this is to cool a project to not finnish so finnish it I will!

Watch this space peeps

Posted in Uncategorized.


Client up and running

Sorry for the silence, I’ve been hectically busy the past few weeks! Juggling 3 projects, college AND a full time day job is a tricky business

I’m happy to report my client is up and running!!! Its really starting to get exciting now. The feeling you get talking to your MXit contacts on a client written 100% by yourself is indescribable

What MXtreme does so far more or less

  • Challenge & Get PID HTTP requests
  • Logs in
  • Retrieves contacts and populates contact list (WPF TreeView, not for the feint hearted)
  • Updates contact status and mood
  • Sends and receives messages
  • Applies text coloring and emoticons (WPF RichTextBox, once again not for the feint hearted)

I must say that getting the text color and emoticons to work like it should was quite a task, alot of googling was involved here, but I got it in the end.

There are still a few UI things that require some research and tweaking, after this is done the simpler commands (like adding and deleting contacts etc) will be added and handled in the protocol interpreter and front end.

Posted in Uncategorized.


Ah how I love the smell of progress

Things are starting to look up! The GUI is coming together nicely, I’ve impressed myself with the look of it actually.

I just finished hooking up the Challenge and GetPID HTTP calls to the login window and I’m successfully logging in, like clockwork.

I’m busy tying up some loose ends at the moment, IE error trapping. Up until now I’ve coded assuming all data entered by the user is correct and as we all know this is rarely the case. After this is finished I’m going to design the contacts window, there after write the request to get the contacts, write the response class to accommodate the data from the response, and then the event to make it available to the GUI. Then I’ll obviously implement it in the GUI.

I should be able to actually chat using my client before this weekend ends

Posted in Uncategorized.


Basic API structure completed

After much hassle and debugging, the backend or API is finally working like it should be. Honestly building this API is not as easy as I thought it would be. Between getting the listener thread and callback working and separating commands received from the MXit server correctly and efficiently I felt like pulling the hair out of my head at times. I’ve now decided on the final API structure and its all running smoothly.

My attention has now been turned to the front end which I’m doing in WPF. This will be no easy task as my experience in WPF is limited to a few custom controls I’ve written for the system I’m working on during my day job. Now as before I need to get the basic front end working and ready before I can move on and fully implement the API.

Time to work on this project is very limited as I have a full time job as a C# & SQL programmer. Further more I’m still studying (completing my 3rd year BSc in Information Systems Engineering), and I’ve got another side project in the form of an e-commerce website.

Posted in Uncategorized.


Multi threaded backend up and running

After quite a bit of hassle,  research, and random tinkering, the multi threaded listener and callback have been successfilly implemented into the API

Right now I’m working on my login request. Up until now I’ve been logging in using the request copied from libPurples debug window, so it’s static. The reason for doing this because I know for a fact that its structured correctly and the server will reply upon receiving it. Now that I know there is communication between the client and server I can go back and tweak my login procedure.

I’ve also started planning how the API will tell the front end what to do. After a command / response is read, the listner thread uses a callback to send it to the UI thread. There it will be sent to a method to strip out each individual command, interpret them(what kind of command is this?), and fire the appropriate event sending the applicable variables as event arguments. These events my then be registered for by the GUI which will handle them appropriately.

Posted in Uncategorized.


API Successfully logging in

After days of issues getting my login request right and trying to get responses from the server things are finally looking up!

So far I’ve successfully logged into MXit and I’m receiving responses from the MXit servers.

Up and till now the code has been pretty procedural just to get the concept working(send a request and receive a response). I’ve now put a framework in place where my listener listens for responses from the server in its own thread and sends a callback to the main thread once data is read. There are still some issues regarding buffering the data and so on but I just have to find the right puzzle pieces in the MSDN documentation to sort this out.

When this “framework” is up and running, which should be in the next day or two, I’ll plan the final design of the API and start coding my core requests.

Thanks alot to Pavlov, Apyreal and the others who have helped me in the forums so far, you guys r0ck! \m/

Posted in Uncategorized.


API starting to take shape

I’ve started working on the API that will encapsulate the MXit protocol, and things are going really well. I must admit that its a fair amount of work but it will be very helpful in the long run.

The reason for doing this is to keep the low level communication with the MXit servers away from the GUI code for the sake of readability and maintainability.

I’ve got the first two HTTP GET requests (Apendix A) done and working. The next step is to actually log the user in using the information gathered from the said HTTP requests.

After I’ve got a basic API set up with the core functionality (Login, Get Contacts & Status, Send Message, Receive Message, Log Out), I’ll start designing the GUI in WPF. When I have a working MXit client I’ll prioritize the other features and start adding them, first to the API and then to the GUI.

Posted in Uncategorized.


Development has begun!

I’ve decided to write an API to encapsulate the MXit protocol in first. I’ve never worked on raw HTTP / TCP IP requests like this before so development will be slow the first few days until I get the hang of it.

As soon as I have the basic chat functionality (login, get contacts, send messages, etc) built into the API I’ll start working on the front end.

I’ll be coding the entire project in C# and compiling under the .Net 3.5 framework. The GUI will probably be done using WPF

Posted in Uncategorized.