如何開發(fā)一款像 WhatsApp 一樣的即時聊天應(yīng)用?

2 評論 8163 瀏覽 15 收藏 11 分鐘

編者按:WhatsApp的成功令眾多業(yè)內(nèi)人士競相效仿。本文作者Veeraeswari在“How to Build your Own Real-time Chat App like WhatsApp?”一文中講述了Contus Fly在試圖超越WhatsApp過程中的所作所為。

如果你想創(chuàng)建一個像WhatsApp這樣偉大的應(yīng)用,當(dāng)然必須先要了解WhatsApp的技術(shù)和構(gòu)架。

我們需要從第一次進(jìn)入這個小型聊天群進(jìn)行私密聊天的時刻開始回溯起。之后,社交應(yīng)用進(jìn)入大眾視野,為人們提供了基礎(chǔ)性的溝通工具。而到現(xiàn)在,即時通信軟件使人與人之間保持著迅速且密切的聯(lián)系。除此之外,即時通訊軟件的便利性和舒適度也得到了提高。

人們熱情擁抱著人氣日益飆升的眾多聊天應(yīng)用軟件,當(dāng)然也包括WhatsApp。研究發(fā)現(xiàn),大多數(shù)人更希望有這么一款聊天應(yīng)用軟件橫空出世,其為用戶添加了額外的貼心功能。

現(xiàn)在我們是時候開始卷起袖子開發(fā)一款類似于WhatsApp這樣“舉世震驚”的軟件了。

現(xiàn)代聊天軟件的演變

需要提到,一款現(xiàn)代聊天應(yīng)用必須具備能夠滿足任何聊天方式的功能。據(jù)近期消息稱,研發(fā)出WhatsApp這類即時聊天軟件的公司正在進(jìn)行相關(guān)人工智能和機器人技術(shù)的試驗。一款理想的聊天應(yīng)用應(yīng)該是那種同時為企業(yè)級通信、個人通信、業(yè)務(wù)開發(fā)通信和電子商務(wù)通信提供解決方案的軟件。

WhatsApp的成功鼓動了眾多投資商和開發(fā)者想要復(fù)制WhatsApp的成功,這沒什么值得驚訝之處。Contus Fly就是其中一例,Contus想要開發(fā)一款類似WhatsApp的聊天應(yīng)用,并會基于用戶對這類平臺的功能期待進(jìn)行新功能的研發(fā)。雖然WhatsApp已經(jīng)占據(jù)了即時通信市場的大壁江山,但是躍躍欲試者依然有機會開發(fā)出某些WhatsApp并不滿足用戶需求的聊天應(yīng)用。

考慮到上述目標(biāo),我們并不想要一款類似于WhatsApp的傳統(tǒng)聊天應(yīng)用,而是想要一款為所有聊天場景提供理想解決方案,并使其在同類別軟件中脫穎而出的現(xiàn)代聊天應(yīng)用。

你有沒有認(rèn)真思考過,什么技術(shù)能夠支撐WhatsApp成為如此標(biāo)桿式的聊天應(yīng)用?

下文是Contus的后端組件架構(gòu)情況,其基于此而試圖搭建一個類似于WhatsApp的即時聊天應(yīng)用。

Erlang(一種編程語言):這是WhatsApp這款史詩級聊天軟件所使用的主要編程語言。Erlang編程語言因其性能、速度和延展性而廣受好評。Contus Fly也基于這種編程語言構(gòu)建,使其垃圾收集器通過允許立即進(jìn)行代碼更新而獲得不同功能。而這有助于Contus Fly以非常短的延遲度處理大量消息。

Ejabberd(即時消息服務(wù)器):Contus Fly使用開源jabber提高操作效率,為預(yù)期結(jié)果提供優(yōu)化支持。其使用XMPP(可擴展消息傳遞和到場協(xié)議)協(xié)議來處理所有局域網(wǎng)和互聯(lián)網(wǎng)上的信息傳遞系統(tǒng)。Ejabberd的服務(wù)器使用包容性強的插件模塊:

  1. ?一對一聊天。
  2. 關(guān)聯(lián)真實與即存名單。
  3. 存儲與轉(zhuǎn)發(fā)(脫機信息)。
  4. 個人事件協(xié)議(PEP)和消息類型規(guī)范。
  5. 多用戶聊天(MUC)—用戶聊天。
  6. 隱私設(shè)置與賬戶欺騙。
  7. 信息檔案管理(MAM)

FreeBSD(一種可免費使用的UNIX操作系統(tǒng)):WhatsApp平臺上每天發(fā)送的信息量達(dá)數(shù)十億條,其中就有FreeBSD功勞。由于FreeBSD的網(wǎng)絡(luò)堆疊精巧度高且可靠性強,Contus Fly選擇了FreeBSD操作系統(tǒng)。FreeBSD在安裝方面優(yōu)勢眾多,并且提供了簡單的二進(jìn)制包的創(chuàng)建。

YAWS(web服務(wù)器):其完全由Erlang編寫。Contus Fly使用嵌入模式,在此模式中YAWS作為嵌入式web服務(wù)器運行。YAWS系統(tǒng)具備高效處理并發(fā)進(jìn)程的高性能表現(xiàn)。

Lighttpd(web服務(wù)器):Lighttpd是一個為Contus Fly提供更好性能的開源web服務(wù)器。WhatsApp上部署了輕量級的Lighttpd 服務(wù)器,以使應(yīng)用具備安全、靈活、快速和兼容的特性。

PHP(服務(wù)器端編程語言):Contus Fly使用PHP開源語言確保應(yīng)用的性能和可靠性,并通過與強大的web開發(fā)技術(shù)AJAX相結(jié)合,用AJAX顯示數(shù)據(jù),以確保信息的即時性。

BEAM:BEAM是一個運行Erlang的虛擬機。Contus Fly使用BEAM接口實現(xiàn)調(diào)度、運行、傳遞信息、管理內(nèi)容和多核等功能。

Custom XMPP Server:Contus Fly通過減少關(guān)鍵字字節(jié)將XMPP服務(wù)器編碼到應(yīng)用程序的功能中。該技術(shù)用以實現(xiàn)實時信息交換。

如何開發(fā)一款像 WhatsApp 一樣的即時聊天應(yīng)用?

HTML5 WebSockets:HTML5 WebSockets是HTML5的一個特性,其數(shù)據(jù)通過套接字發(fā)送,用于在web瀏覽器與服務(wù)器之間建立牢固的、更快更持久的連接。

Mnesia DB:這是一個由Erlang語言編寫的實時數(shù)據(jù)庫管理系統(tǒng)。Mnesia是一個可以存儲信息、文件、圖像、視頻、文檔以及在程序上運行其他多媒體文件的軟數(shù)據(jù)庫。Contus Fly正在使用。這一技術(shù)的性能遠(yuǎn)遠(yuǎn)超出了人們的期望,其極有可能實現(xiàn)儲存任何數(shù)量的數(shù)據(jù)。

一款成功聊天應(yīng)用需要具備的特性:

現(xiàn)在,我們需要了解一款全面的聊天應(yīng)用需要具備的功能:

(1)網(wǎng)絡(luò)電話(VOIP Phone Calls)

網(wǎng)絡(luò)電話是通過互聯(lián)網(wǎng)協(xié)議提供語音通信和多媒體會話的技術(shù)分類。

(2)視頻聊天(Video Chats)

使人們可以直接通過語音/視頻聊天,不再需要中間連接。

(3)群組聊天(Group Calls)

聊天應(yīng)用為用戶提供更深入的語音/視頻聊天工具,以與其他用戶建立聯(lián)系。

(4)端到端加密聊天(End-to-End Chat Encryption)

一種杜絕第三方滲透的用戶安全加密功能。通過高級加密技術(shù),優(yōu)先考慮用戶私有數(shù)據(jù)的安全。

(5)云同步服務(wù)(Cloud Service Sync)

云資源同步平臺同步監(jiān)控、更新、存儲和擴展用戶環(huán)境。

(6)多媒體支持(Multimedia Support)

確保視頻、圖像、GIF、語音、動畫、文檔、聯(lián)系人和位置等各種數(shù)據(jù)格式的文件傳輸。

(7)自我銷毀信息(Self?—?Destructing Messages)

通過選中群中的某一個用戶并向其發(fā)送信息,以確保其他人無法查看。

(8)地理位置集成(Geolocation Integration)

強化的地理位置集成與實時位置形成了相當(dāng)有力的互動作用。

(9)日歷同步(Calendar Synchronization)

日歷同步確保用戶對事件和任務(wù)的全面了解,提醒用戶有哪些計劃還未提上日程。

(10)多平臺聊天(Multi-platform Chatting)

跨平臺信息系統(tǒng)使用戶無論是在辦公桌旁還是在路上都能及時獲取工作信息。

(11)程序內(nèi)購買(In-app Purchase)

通過在數(shù)字商店上架自己的應(yīng)用程序來使其變現(xiàn),增加用戶的應(yīng)用收入。

WhatsApp所不具備的特性

除了上述這些內(nèi)置功能外,Contus Fly還基于用戶期望的聊天方案類型進(jìn)行整合。

1. 配置用戶訪問和管理用戶賬戶:

  • 用戶邀請制
  • 開放訪問
  • 管理員確認(rèn)

2. 以最優(yōu)方式向用戶通知活躍聯(lián)系人

  • 推送通知
  • 郵件&郵件訂閱
  • 短訊服務(wù)

3. 根據(jù)用戶需要創(chuàng)建定制聊天組:

  • 開放創(chuàng)建群組權(quán)限
  • 只有管理員才能創(chuàng)建群組
  • 用戶可以查看并請求加入某個群組
  • 相關(guān)用戶只可查看與自己圈子有關(guān)的群組

Contus Fly還提供了各種各樣幫助用戶賺錢的方式:

如何開發(fā)一款像 WhatsApp 一樣的即時聊天應(yīng)用?

  1. 完全免費
  2. 應(yīng)用內(nèi)支付
  3. 應(yīng)用廣告
  4. 贊助廣告
  5. 訂閱服務(wù)

“在未來,每一個聊天應(yīng)用的注冊者都擁有大展拳腳的空間?!?/p>

如果你想要建立一個類似于WhatsApp但是卻又添加了新功能的現(xiàn)代即時聊天應(yīng)用,那么就應(yīng)該在添加動態(tài)功能這條路上一直走下去。

 

原文地址:https://hackernoon.com/how-to-build-your-own-real-time-chat-app-like-whatsapp-9d1d058afd5b

譯者:木木子,由36氪編譯組出品。編輯:郝鵬程

譯文地址:http://36kr.com/p/5136992.html

本文由 @郝鵬程 授權(quán)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來源于網(wǎng)絡(luò)

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. ??

    回復(fù)