我想知道我該如何做一些事情,如Skype或雅虎通訊?開發一個互聯網使者我應該怎麼做?
我提到了雅虎或Skype,因爲我真的想讓Messenger能夠處理很多在線用戶。
我是一名java開發人員,但我對這類項目或者VOIP和網絡沒有任何想法?
我可以用java開發一些像messenger一樣的東西嗎? 和其他什麼技術,框架或任何其他我需要處理這個項目?最後,我可以單獨開發嗎?!或者我需要一個團隊開始?!
我想知道我該如何做一些事情,如Skype或雅虎通訊?開發一個互聯網使者我應該怎麼做?
我提到了雅虎或Skype,因爲我真的想讓Messenger能夠處理很多在線用戶。
我是一名java開發人員,但我對這類項目或者VOIP和網絡沒有任何想法?
我可以用java開發一些像messenger一樣的東西嗎? 和其他什麼技術,框架或任何其他我需要處理這個項目?最後,我可以單獨開發嗎?!或者我需要一個團隊開始?!
我想你最需要的是關於網絡編程的知識。這是實現您的目標的第一步:您將學習如何以合理的方式在兩臺主機之間以及幾臺主機之間進行通信(一些用於java網絡編程的鏈接here,here和a book here)。將注意力集中在協議(低級別)(也許是密碼學)上,並嘗試根據需要找到合適的協議。其次,你可以看看你自己的即時通訊協議(高級別)或者使用現有的協議(Jabber,MSN,Yahoo,aim等)
其次,你可以看看一個開源項目,試圖實現類似的東西,以更好地瞭解如何構建您的項目架構,客戶端通信等。你也可以在網頁上看到一些庫文件(here是一個用於java和Jabber的文件,Yahoo用的是here)。
最後,您可以開始設計您的項目,並決定要做的工作是否超過一個人在合理的時間內能夠忍受並嘗試說服人們與您合作。或者你也可以加入一個開源項目,如果你找到任何。
您可能想要研究套接字。很多由java btw製作的套接字應用程序。對於簡單的聊天應用程序它是。然而,視頻聊天或VOIP需要更多的努力。
探索java.net 學習套接字編程,並不複雜。 關於處理多個客戶端,你的服務器必須有多個線程。每個客戶一個。
開發一個簡單的聊天信使並不是在java中的出價。人們可以自己做到這一點。 也許,您甚至可以使用多線程處理多個客戶端。
爲什麼要重新發明輪子。 JAVA中有許多開源軟件可以支持即時消息,多重聊天,在線狀態以及語音和視頻通話。
Skype基於SIP
+自己的專有技術。所以Skype只能用於Skype。忘掉互操作性
Gtalk使用XMPP
(www.xmpp.org)進行聊天,但使用libjingle(用於RTP會話)進行音頻/視頻呼叫。 (libjingle
協議和Jingle
是非常相似,它們是不一樣的,並且不可互操作)
雅虎,Facebook ...有許多即時移動到XMPP的即時消息。 (爲什麼..???因爲互通)
所以,如果你想創建自己的即時消息與GTALK互通,雅虎......所有可用的IM,使用XMPP
庫。首先你可以下載JAVA
版本的XMPP - SMACK。使用其簡單的APIs
,您的IM已準備就緒。
所以如果你真的想做一些有趣的新功能,開源社區contibute,專利你的想法/技術或出售給大槍。 :)
是爲了好玩嗎?如果沒有 - 放棄它,真的。有很多IM包括開源軟件。 – Andrey 2010-11-07 20:40:12