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聊SDK-簡介(3): 管理平臺使用 中創建了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 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 即可使用本地後端項目實現聊天功能.