開發社交應用的利器——Ejabberd一瞥
版權宣告:本文為半吊子子全棧工匠(wireless_com,同公眾號)原創文章,未經允許不得轉載。 https://blog.csdn.net/wireless_com/article/details/44899559
Erlang在社交應用中的地位突顯,自己搭一個大容量高併發的IM伺服器變得不那麼遙不可及了。Ejabberd 正是這樣一個不錯的選擇,至少是一個很棒的參考。對於一個4核16G記憶體的伺服器,單個Ejabberd節點可以支援30萬的IM使用者。
ejabberd是基於Jabber/XMPP協議的即時通訊伺服器,由GPLv2授權(免費和開放原始碼),採用Erlang/OTP開發。它的特點是跨平臺,容錯,叢集和模組化。
XMPP是由IETF制定的一個可擴充套件的即時訊息通訊協議。XMPP基本有兩部分組成,一部分是它的核心協議,還有一部分是擴充套件協議。其中核心協議主要由RFC-6120、RFC-6121、RFC-6122組成。還有一堆的擴充套件協議,具體可以參見XMPP官網擴充套件協議列表部分。一般會使用到的擴充套件協議包括XEP-0160 XEP-0013離線訊息處理、XEP-0045多使用者聊天、XEP-0096檔案傳輸。Smack是Java語言寫的XMPP Library,貌似Java中較好的XMPP客戶端了。
Ejabberd 的系統架構如圖所示:(http://docs.ejabberd.im/architect/)
Ejabberd 支援的主要功能有:
l 點對點訊息One-to-onemessaging
l 儲存轉發Store-and-forward(offline messages)
l 通訊錄和狀態顯示
l 群聊
l 訊息備檔管理
l 線上狀態擴充套件:Personal Event Protocol (PEP)和輸入狀態指示
l 隱私設定
l 支援vCards的使用者資料
l 基於 BOSH 和 websockets的web支援
l 面向移動裝置的流式管理(aka XEP-0198)
l 訊息傳送回執(akaXEP-184)
l 最後的訊息活動
l 命令列管理工具……
Ejabberd既可以使用Mnesia作為資料庫,也可以是Mysql等。基於良好的可擴充套件性,ejabberd同樣支援SIP和WebRTC。
相關文章
- JavaScript模組化開發一瞥JavaScript
- CNNIC:“泛社交”時代 典型社交應用差異化發展CNN
- 去中心化社交軟體ktalk開發技術應用中心化
- 社交IM聊天軟體開發app,區塊鏈技術應用落地開發方案APP區塊鏈
- 社交app開發功能,社交軟體開發功能,社交app,社交軟體。APP
- 區塊鏈IM社交直播軟體開發方案,區塊鏈技術應用開發區塊鏈
- 區塊鏈社交直播app軟體開發,區塊鏈技術應用落地開發區塊鏈APP
- RabbitMQ的開發應用MQ
- 社交元宇宙開發(APP+H5+小程式)場景應用元宇宙APPH5
- 區塊鏈社交直播軟體開發app,區塊鏈技術應用落地開發方案區塊鏈APP
- Linux下ejabberd開機自啟(CentOS)LinuxCentOS
- Azure Bicep 開發利器
- Lodash前端開發利器前端
- java 開發利器:lamdajJava
- Django開發社交類網站必備的10個第三方應用Django網站
- elasticsearch的開發應用(3)Elasticsearch
- 好用的API介面,開發效率的利器API
- 小程式開發利器:Matchmaker
- 社交網路 (並查集的應用)並查集
- CNNIC:社交應用的“錢景”向好CNN
- 1.1.4 應用開發
- 開發Web應用Web
- 那些年一起用過的iOS開發利器之ParseiOS
- Vue+ Electron 開發的一個跨三端的應用(Taro開發多端應用)Vue
- 降本增效的利器——元件化開發元件化
- 網路開發的利器,初識Charles
- Web開發除錯利器——Wireshark的使用Web除錯
- WEB應用開發中的ServletWebServlet
- Helm, 在Kubernetes中部署應用的利器
- j2ee應用調優的利器-JProfiler
- 區塊鏈社交直播app開發,區塊鏈技術應用資料上鍊區塊鏈APP
- 區塊鏈落地應用開發,區塊鏈IM社交直播系統解決方案區塊鏈
- 使用Taro開發鴻蒙原生應用——快速上手,鴻蒙應用開發指南鴻蒙
- 使用 Taro 開發鴻蒙原生應用 —— 快速上手,鴻蒙應用開發指南鴻蒙
- 那些年一起用過的iOS開發利器之CocoaPodsiOS
- Taro開發多端應用
- iOS開發-SiriKit應用iOS
- Ffmpeg快速應用開發