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 ?!
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.
Why reinvent the wheel. There are many open source software in JAVA available which supports IM, multiple chats, presence as well as voice and video calls.
Skype is based on SIP
+ its own proprietory technology. So skype will only work with skype. Forget about interoperability
Gtalk uses XMPP
(www.xmpp.org) for its chats, but uses libjingle(for RTP sessions) for audio/video calls. (The libjingle
protocol and Jingle
are very similar, they are not the same, and are not interoperable)
Yahoo, Facebook... there are many IMs which are now moving to XMPP. (Why..??? because of interworking)
So if you want to create your own IMs which interworks with gtalk, yahoo... all the available IMs, use XMPP
libraries. To start with you can download JAVA
version of XMPP - SMACK. Use its simple APIs
and your IM is ready.
So if you really want to do something interesting come up with new features, contibute to open source community, patent your idea/technology or sell it to big guns. :)
You probably want to research on socket. A lot of socket application made by java btw. For simple chat application it is. However video chat or VOIP needs a lot more effort.
Explore java.net Learn socket programming, ain't that complicated. About handling multiple clients, you server would have to have multiple threads. One for each client.
Developing a simple chat messenger is not that a bid deal in java. One can do this on its own. Probably, you can even handle multiple clients with multi-threading.
精彩评论