喧喧官網 : https://xuan.im/index.html
架構
喧喧即時通信解決方案包含三個部分:
- 用戶端(xxc):提供最終使用者使用的互動界面;
- 後端伺服器(xxb):提供聊天資料存儲以及供用戶端使用的接口,以及喧喧伺服器管理界面。
- XXD 伺服器(xxd):作為中間守護伺服器,提供檔案上傳下載下傳管理、協調用戶端與後端伺服器通信。
用戶端通過 Socket 連接配接到 XXD 伺服器;XXD 伺服器負責管理所有已連接配接的用戶端,并且随時将用戶端相關資訊通過 HTTP 協定彙報給後端伺服器;用戶端并不直接與後端伺服器通信,而且将消息發送給 XXD 伺服器,XXD 伺服器接收到用戶端消息後立即将消息發送給後端伺服器;後端伺服器如果有消息要推送給用戶端需要先發送給 XXD 伺服器,然後 XXD 伺服器将後端伺服器的消息再推送給用戶端。在以上三方直接存在 2 中通信協定:
Socket:用戶端與 XXD 伺服器直接使用 Socket 協定連接配接(檔案上傳下載下傳除外),可以實作實時通信,将使用者聊天過程中的延遲降至最低;
HTTP:XXD 伺服器與後端伺服器通過 HTTP 協定通信,HTTP 協定具有廣泛的支援,并且使用簡單,這樣使用者更容易将喧喧內建到自己的系統中。
通常情況下用戶端、後端伺服器和 XXD 伺服器的關系如下:
技術實作
後端伺服器實作
後端伺服器采用 php + mysql 開發,使用 ZentaoPHP 作為開發架構,非常友善的進行二次開發。
XXD 伺服器實作
XXD 伺服器端采用 Go 語言實作。Go 語言具備高性能、支援高并發、易于學習使用,非常适合來開發中間守護伺服器。
XXD 伺服器使用到了 go-sqlite3 來實作伺服器緩存功能。
用戶端實作
用戶端推薦采用 HTML/CSS/JS 實作,目前官方桌面用戶端基于 Electron 開發。
環境安裝
從https://xuan.im/page/download.html 分别下載下傳xxd代理伺服器安裝包 和後端業務伺服器伺服器安裝包 xxb.2.5.6.zbox_64.tar.gz(目前最新)附圖:
上傳到liunx伺服器上
解壓
- 解壓後端業務伺服器伺服器安裝包
tar zxvf xxb.2.5.6.zbox_64.tar.gz -C /opt
注意一定是/opt目錄
解壓代理伺服器安裝包到目前目錄,留後面用
tar zxvf xxb.2.5.6.liunx.x64.tar.gz
修改配置檔案
修改配置檔案 /opt/zbox/run/xxd/config/xxd.conf
[[email protected] ~]# cat /opt/zbox/run/xxd/config/xxd.conf
[server]
ip=0.0.0.0 # 監聽的IP位址,不要使用127.0.0.1。
commonPort=11443 # 登入和附件上傳接口(http),確定防火牆開放此端口。
chatPort=11444 # 聊天消息通訊端口(websocket),確定防火牆開放此端口。
https=off # 是否啟用Https(on|off)。使用Https可以保證消息全程加密。
uploadPath=files/ # 附件儲存的目錄。預設存放在xxd/files/。
uploadFileSize=32M # 上傳檔案的大小,以M為機關。
maxOnlineUser=0 # 線上使用者上限,0為無限制。
logPath=log/ # 程式運作日志的儲存路徑。
certPath=cert/ # 證書的儲存路徑。
debug=0 # Debug級别,可設定0|1|2
[backend]
#
# xxd可以對接多個背景程式。每一個背景程式由入口檔案 + 私鑰組成。
# 用戶端登入時如果沒有指定背景程式,會預設登入到第一個背景程式。
#
#backend1=http://127.0.0.1/x.php,88888888888888888888888888888888
#backend2=http://192.168.1.3/xxb/x.php,88888888888888888888888888888888
backend2=http://120.78.166.56:8080/xxb/x.php,e42faa01a0a867a5ed3d2ad3e4cbd3b0 注意本機用backend1 外網用backend2,8080為啟動端口
啟動服務
Apache和Mysql常用指令
執行/opt/zbox/zbox start 指令開啟Apache和Mysql。
執行/opt/zbox/zbox stop 指令停止Apache和Mysql。
執行/opt/zbox/zbox restart 指令重新開機Apache和Mysql。
可以使用/opt/zbox/zbox -h指令來擷取關于zbox指令的幫助
其中 -ap參數 可以修改Apache的端口,-mp參數 可以修改Mysql的端口(比如:/opt/zbox/zbox -ap 8080)
通路
通路和登入喧喧
啟動Apache和Mysql服務後,
浏覽器直接通路 http://xxb伺服器ip:apache端口 即可通路和登入。
通路http://120.78.166.56:8080/ 如圖:
用戶端登入
用戶端下載下傳位址:https://xuan.im/page/download.html
使用xuanxuan-browser 靜态頁面登入:附圖
注:伺服器為ip,不加端口
2桌面程式登入