資安

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

1.目標:

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

2.簡介:

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

3.系統架構:

image.png

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聊SDK-簡介(3): 管理平臺使用 中創建了E聊用戶,使用在管理臺創建的用戶auid, 用戶token 登錄即可。
image.png
登錄後的聊天界面如下,暢快體驗吧!

image.png

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 package -DskipTests=true  # 編譯後端中間件

5.2 下載server Release v1.01 源碼

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

5.3 下載server Release v1.01 源碼

git clone https://gitee.com/dzqmeiji/echatim-server-community.git
cd echatim-server-community/
git checkout -b v1.01 v1.01
mvn clean package -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

Leave a Reply

Your email address will not be published. Required fields are marked *