開發社交應用的利器——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。
相關文章
- 去中心化社交軟體ktalk開發技術應用中心化
- 社交IM聊天軟體開發app,區塊鏈技術應用落地開發方案APP區塊鏈
- 社交app開發功能,社交軟體開發功能,社交app,社交軟體。APP
- 社交元宇宙開發(APP+H5+小程式)場景應用元宇宙APPH5
- 區塊鏈社交直播app軟體開發,區塊鏈技術應用落地開發區塊鏈APP
- 區塊鏈IM社交直播軟體開發方案,區塊鏈技術應用開發區塊鏈
- Helm, 在Kubernetes中部署應用的利器
- 區塊鏈社交直播軟體開發app,區塊鏈技術應用落地開發方案區塊鏈APP
- RabbitMQ的開發應用MQ
- Lodash前端開發利器前端
- java 開發利器:lamdajJava
- Azure Bicep 開發利器
- elasticsearch的開發應用(3)Elasticsearch
- 深入探索Chrome開發者工具:開發者的利器Chrome
- 好用的API介面,開發效率的利器API
- boltdb一瞥
- 開發Web應用Web
- 1.1.4 應用開發
- Vue+ Electron 開發的一個跨三端的應用(Taro開發多端應用)Vue
- GitHub:開發者的社交網路Github
- 小程式開發利器:Matchmaker
- 區塊鏈社交直播app開發,區塊鏈技術應用資料上鍊區塊鏈APP
- 區塊鏈落地應用開發,區塊鏈IM社交直播系統解決方案區塊鏈
- 用vscode開發vue應用VSCodeVue
- 降本增效的利器——元件化開發元件化
- JProfiler for Mac/win- 提升Java應用程式的效能利器!MacJava
- 安裝用於 Windows 應用開發的工具Windows
- Taro開發多端應用
- 用VS Code開發Vue應用Vue
- iOS開發Runtime的理解與應用iOS
- Epinio:Kubernetes 的應用程式開發引擎
- Windows 應用開發的系統要求Windows
- 淺談桌面應用程式的開發
- 開發者利器:免費好用的api介面API
- 高效開發利器:熱門好用的API分享API
- 免費好用的api介面,開發者利器API
- 你的開發利器Spring自定義註解Spring
- 好用的API彙總:提升開發效率的利器API
- 探討敏捷開發在軟體開發中的應用敏捷