2010-05-25 38 views
0

我正在研究使用Java堆棧構建一個IM類型的應用程序(至少對於服務器)。我有興趣瞭解有關Skype/AIM/MSN等應用程序的任何信息/建議,並瞭解任何可能相關的技術/ API。 沒有放棄這個想法本身,它可能更像Google Wave而不是Skype,但是對於任何一個都有用的信息是非常受歡迎的。在使用IM應用程序之前,我需要知道些什麼?

我已經想到的具體要點包括:

  • 服務器Vs的P2P ...用於登錄我的系統會要求所有通信都要經過中央服務器的原因。這是其他IM工具如何工作的特別是當音頻/視頻進入等式時?
  • 與其他系統交叉通信。有沒有API或所有IM提供者努力保持協議祕密?我設計的性質意味着整合可能只能是有限的,但從商業的角度來看它絕對是值得的。

回答

3

瞭解XMPP。 Java庫有plenty,大多數主要IM客戶端都支持XMPP。

+0

正是我在尋找的東西。你能推薦任何特定的Java庫嗎?有沒有「官方」的? – 2010-05-25 11:48:18

+0

最好的lib應該是來自OpenFire項目的Smack:http://www.igniterealtime.org/projects/smack/ – instcode 2010-08-20 15:41:36

1

如前所述,使用XMPP(表示可擴展消息傳送和存在協議)。 您可能通過使用現有的XMPP服務器(例如Openfire,ejabberd等)而無需自己編程即可脫身。有一種叫做libpurple的連接使用專有的IM協議。

對於做標準XMPP的東西,你可以看看客戶機器人或external server components

0

有兩種方法來構建移動消息應用程序:聊天功能的開發:

  • 從頭內部
  • 集成了移動消息解決方案的SDK構建的專有解決方案。

以下是關於粗略估計開發成本擊穿像硅谷或紐約的地方建立基本的一篇文章,How Much Does It Cost to Develop WhatsApp?它涉及到最小的初始固定成本發展3個月$ 260,000約6工程師和產品經理移動聊天功能從零開始。更不用說將來運行服務器,維護,可擴展性和功能擴展的成本。花費美元和時間建立聊天功能的機會成本是無法在覈心功能上分配的資源(除非您正在構建另一個WhatsApp或Facebook Messenger)。如果您的計劃不是重新發明輪子,或者您正在節省工程資源並讓專家更好地使用,或者只是簡單地使用聊天功能來測試水,那麼集成第三方通常更簡單和更具成本效益或直接開源解決方案。他們通常提供可立即使用的可定製用戶界面庫,跨平臺SDK,後端API和Webhooks集成等。與使用Google Analytics,Crashlytics,AFNetworking,Facebook API,Socket.ioStripe,Twilio for SMS ,Hyphenate.io等。許多公司決定最初建立內部聊天解決方案,但後來才意識到,隨着客戶羣快速增長,他們的解決方案無法按預期擴展。

然而,在你開始之前得到手髒集成聊天功能是否第三方整合或內部解決方案,您可能需要調查以下幾個方面,

  • 成本效益:內部的投資回報率解決方案?實現規模經濟?建設工程基礎設施是非常昂貴的,計算初始固定的開發成本,運行成本,維護,功能擴展等
  • 可擴展性:低延遲,水平縮放,垂直縮放,縮放無需停機,整體性能等
  • 可靠性:穩定性,可靠性,停機時間,保證消息傳送,沒有丟失消息和包等
  • 移動客戶端設備:設備的電池壽命,蜂窩數據使用,零星和緩慢的互聯網連接,
  • 所有權:專有與分級定價結構與私人部署許可和託管
  • 安全:加密,認證,保密
  • 可移植性:在不同的平臺的支持。即移動(Android,iOS),桌面(macOS,Windows)以及各種Web瀏覽器。
  • 特點:一對一的聊天,羣聊,體積大,同時對話,登錄到多個設備,文件共享,音頻文件共享與播放,視頻/語音呼叫等
  • 技術:這裏有許多標準化的技術,例如XMPP,MQTT,HTTP長輪詢,Socket.io等。大多數消息傳遞在標準協議上構建專有解決方案,例如Facebook Messenger is based on MQTT。許多第三方供應商已經提供了很好的API和SDK解決方案來緩解開發人員的頭痛,比如Hyphenate.io。
  • 人力資源:您是否能夠找到具備專業知識的工程師來滿足上述所有要求? 另一件需要考慮的事情是可以結合時髦的聊天機器人,大數據分析(尤其是客戶服務),加密等。檢查第三方SDK,開源或工程團隊是否能夠提供這些靈活性或佈局潛在跑道。一些移動消息傳遞解決方案提供商,如Hyphenate.io,具有豐富的聊天功能集和非常靈活的擴展功能,可隨時處理。

最後,解答您的想法,

  1. 服務器Vs的P2P ...用於登錄我的系統的原因,將要求所有通信都要經過中央服務器。這是其他IM工具如何工作的特別是當音頻/視頻進入等式時?

連字符爲您處理通信或消息傳遞以及建立視頻/語音通話。

  1. 與其他系統的交叉通信。有沒有API或所有IM提供者努力保持協議祕密?我設計的本質意味着整合可能只能是有限的,但從商業的角度來看它絕對是值得的

**在通信安全性方面,有三個主要組件可能需要考慮傳輸層安全性的TLS/SSL,用於身份驗證的OAuth 2.0以及端到端加密。 **

+0

關於電池壽命,您有什麼需要考慮的?去一些總是吃掉電池的websocket是愚蠢的嗎? – AlxVallejo 2017-05-12 13:59:57

相關問題