我正在研究一個類似的要求,並且根據我的知識,基於XMPP的解決方案,考慮能夠顯示反饋(如打字/ lastseen等)的要求是適當的。
您可以嘗試使用像ejabberd/mangooseim(開源)這樣的可用xmpp服務器,並將它安裝在您的服務器上,並使用asmack或任何其他客戶端Java庫與您的服務器通信。 (有很多可用的教程)。
有了這麼多的設置,你將能夠到達你能夠獲得狀態的階段,如「打字」,「走了」哪些whatsapp和一些聊天客戶端,如gtalk/pidgin顯示。
這將大致介紹現有聊天客戶端的工作原理。
Ejabberd完全是用erlang編寫的,如果你想擴展erlang的知識是必須的。 (它是專爲高併發容錯和不間斷系統而設計的,這在聊天應用中很有幫助。
GCM絕對能夠在99.99%有一個像正常的聊天應用烘烤狀態,你將不得不完全推倒重來
更新:。
這裏是考慮
從客戶端A客戶端BI要發送聊天消息與ro asters和不要求存儲消息在任何中央服務器,但只在客戶端 - XMPP(如whatsapp)
萬一你需要所有的通信存儲在服務器 - XMPP與SQL驅動程序或mongodb驅動程序/ gcm在你的時間和資源)
萬一你需要設備之間的通信不一定聊天,那麼gcm應該是足夠的。 我在我的應用程序當前使用這種方法,它是與測試版本一起玩在Playstore上,它在大多數情況下絕對正常工作。截至目前,我還沒有看到很多瓶頸。
哈維, 您是否可以完成與gcm或ejabberd的聊天?以及它在生產中遇到的任何問題? – Ramesh
哈維我對此有疑問,並且有類似的要求..你能幫我決定是否應該使用GCM來保存我的目的嗎? @Ramesh你有什麼看法? – Newbiee
嘿,新手,我已經更新了答案。你能指出哪些因素令你感到困惑! – Ramesh