Search code examples
javaalgorithmnetwork-programmingprogramming-languagesvoip

to develop an internet messenger what should i do?


i want to know how can i make some thing like skype or yahoo messenger ?

i mentioned yahoo or skype because really i want the messenger to handle many online users.

i am a java developer, but i don't have any idea for this kind of projects or either for VOIP and networking ?

can i develop some thing like a messenger only with java ? and what other technologies, frameworks or any thing else i need to handle this project ? at the end, can i develop it alone ?! or i need a team to start ?!


Solution

  • I guess that what you need most is knowledge about network programming. This is the first step towards your goal: you'll learn how to communicate between two hosts and among several ones in a reasoned way (some link for java net programming here, here and a book here ). Focus your attention on protocols (low level ones) (and maybe cryptography) and try to spot the right one for your needs. You'll have to understand even ifyou want to write your own IM protocol (high level one) or use one of the existing ones (Jabber, MSN, Yahoo, aim, etc)

    Secondly, you could have a look at an open source project that tries to implement something similar in order to understand better how to structure your project architecture, client communications and so on. You can start looking at some lib (here is one for java and Jabber, here for Yahoo) around the web too.

    Finally you can start design your project and decide if the work to do is more than a single person can bear in a reasonable time and try to convince people work with you. Or you could also join an open source project if you find any.