天天看點

全開源即時通訊(IM)系統-仿微信

1.目标:

E聊SDK目标是打造一個免費開源,接入簡單,适應多平台的即時通信SDK,為廣大開發者提供便利。

2.簡介:

E聊SDK是一套适用于PC端, 移動端的即時通訊解決方案,源代碼開放。E聊整合了即時通訊的基礎能力,使用E聊,您可以讓您的應用快速接入即時聊天的功能。E聊現已适配PC Web, 移動Web, Android, iOS 等平台。

3.系統架構:

3.1 各子產品介紹

E聊伺服器: 提供了基礎的消息轉發功能,使用者管理、群組管理等功能;

E聊管理台: 向E聊伺服器申請接入SDK 所需要的App Key, Client Secret, App Secret 等;

應用用戶端: 使用E聊賬号登入E聊伺服器,實作單聊、群聊消息收發等功能;

應用背景: 業務應用背景,維護原有的業務使用者清單,此外,需維護一張與E聊使用者的關系映射表。

3.2 E聊功能介紹

3.2.1 單聊

點對點的基礎聊天,支援文字,圖檔,檔案等方式;

3.2.2 群聊

一對多的群聊/讨論組,支援文字,圖檔,檔案等方式;

3.2.3 使用者資料管理

使用者賬号(auid), 密碼(token), 昵稱,性别,頭像,簽名,手機,郵箱等;

3.2.4 使用者關系管理

使用者的好友關系管理,黑名單清單,禁言清單等;

3.2.5 消息通知

用戶端SDK可以接受到基礎的消息通知,比如使用者上線/離線,被加好友,被拉入群聊等;

3.2.6 離線消息

E聊伺服器能緩存一定日期内的離線消息,待用戶端上線時會自動推送到用戶端;

3.3 接入流程

(1).注冊登入E聊管理台,在管理台建立APP, 記錄App Key, Client Secret, App Secret;

(2).建立E聊使用者,可以使用服務端API建立,也可以在E聊管理台建立,在應用背景記錄業務使用者與E聊使用者的映射關系;

(3).整合用戶端SDK 進應用用戶端,配置SDK參數(如: E聊伺服器位址,App Key, Client Secret);

(4).登入應用背景,擷取E聊使用者賬号(auid, token)實作登入,消息收發;

4.Web用戶端簡介:

E聊SDK提供了一個基本的Web版用戶端Demo源碼,通過編譯該用戶端,可以接入E聊伺服器,實作單聊/群聊等功能。WEB用戶端源碼包含了兩部分,一部分是核心SDK(使用TypeScript 開發),一部分是示範Demo(使用JavaScript + BootstrapVue 2.9.0 開發)。以下介紹如何從源碼編譯Web用戶端。

4.操作步驟:

4.1 下載下傳Release v1.01 源碼

git clone https://gitee.com/dzqmeiji/echatim-client-web.git
cd echatim-client-web/
git checkout -b v1.01 v1.01           

4.2 編輯用戶端連接配接配置

我們使用E聊線上伺服器做為聊天背景,配置都使用預設的配置,隻需在src/main.js 中更改AppKey 的配置項即可,關于AppKey的擷取請參考

E聊SDK-簡介(3): 管理平台使用
//      src/main.js 檔案内容
719     sdkConfig.host = 'api.echatim.cn';  //使用線上預設配置
720     sdkConfig.httpPort = 58082;  //使用線上預設配置
721     sdkConfig.socketPort = 59092;  //使用線上預設配置
722     sdkConfig.key = '修改這一項為自己的AppKey';
723     sdkConfig.secret = '';  // 這是保留配置, 不需要更改           

4.3 編譯源碼并啟動Web Demo項目

yarn install    #下載下傳項目依賴
yarn lib    #編譯sdk 核心庫
yarn start    #啟動web項目           

啟動後通路:

http://localhost:80

即可通路Web Demo項目。

4.4 體驗Web Demo項目

之前已在

中建立了E聊使用者,使用在管理台建立的使用者auid, 使用者token 登入即可。

登入後的聊天界面如下,暢快體驗吧!

4.5 打包成釋出版本

這裡介紹在mac, linux 上的打包方法,若開發平台是windows, 也可安裝git bash工具在bash cmd 視窗上實作打包。

cd echatim-client-web  # 在項目根目錄準備打包
mkdir -p dist/deploy  # 建立打包目錄
cp ./src/faces.js  dist/deploy/
cp ./src/main.js  dist/deploy/
cp ./src/utils.js  dist/deploy/
cp ./src/index.html  dist/deploy/
cp ./src/login.html  dist/deploy/
cp ./src/app.html  dist/deploy/
cp -rf ./static dist/deploy/  # 拷貝static 資源目錄
tar -cvzf deploy-v1.01.tar.gz  dist/deploy # 打包成ddeploy-v1.01.tar.gz 釋出版本           

5.移動背景端簡介:

E聊SDK提供了一個基礎的後端社群版源碼,通過編譯/修改該後端源碼,可以實作更深度的業務定制,比如檔案上傳/下載下傳、使用者線上/離線監聽、API權限功能、叢集功能等。後端項目使用了springboot+mybatis 進行開發,使用maven 進行項目管理。以下介紹如何從源碼編譯後端項目。

5.操作步驟:

5.1 下載下傳broker Release v1.01 源碼

git clone https://gitee.com/dzqmeiji/echatim-server-broker-community.git
cd echatim-server-broker-community/
git checkout -b v1.01 v1.01
mvn clean install -DskipTests=true  # 編譯後端中間件           

5.2 下載下傳server Release v1.02 源碼

git clone https://gitee.com/dzqmeiji/echatim-server-community.git
cd echatim-server-community/
git checkout -b v1.02 v1.02
mvn clean install -DskipTests=true  # 編譯後端項目           

5.4 導入資料庫結構與初始資料

安裝mysql5.7資料服務, 在mysql建立echatim 資料庫, 導入sqls/echatim-2020-04-30.sql 檔案到echatim 到資料庫。建立mysql root 使用者, 密碼為空.

5.5 啟動後端項目

cd server-community-deploy/target/
java -jar server-community-deploy-1.0.jar           

啟動成功後見到:

swagger test started. http://localhost:8082/swagger-ui.html
socket.io started. http://localhost:9092           

API調試:

http://localhost:8082/swagger-ui.html

socketIO位址:

http://localhost:9092

5.6 編輯Web用戶端配置 源碼位址

我們使用E聊本地伺服器做為聊天背景,配置都使用本地伺服器配置(社群版沒有檔案服務的功能)

//      src/main.js 檔案内容
719     sdkConfig.host = 'localhost';  //使用本地伺服器
720     sdkConfig.httpPort = 8082;  //使用本地預設配置
721     sdkConfig.socketPort = 9092;  //使用本地預設配置
722     sdkConfig.key = 'TSDKTEST00001'; # 檢視資料庫sdk_app表
723     sdkConfig.secret = '';  // 這是保留配置, 不需要更改           

使用yarn start 即可使用本地後端項目實作聊天功能.

技術支援:

E聊

進入官網 進入管理台

SDK版本:v1.01

技術交流QQ群: 471688937