Laravel 8+ LayIM 3.8 + GatewayWorker 開發的網頁聊天系統
新的改變
我們對之前的開源專案–極雲賦進行了重構,新版本的專案結構更為清晰,資料庫設計更為合理,程式語法更為簡潔,易於擴充維護。新版本不僅包含了舊版本的全部功能,我們還增加了如下幾點新功能,與時俱進:
- 前後端完全分離 ,本專案包含一個完整的 API 伺服器和兩個全新設計的客戶端( PC 客戶端和手機客戶端);
- 全新的右鍵選單;
- MySQL+MongoDB 雙資料庫配置,高效能的 MongoDB 負責儲存大量的聊天記錄和訊息記錄;
- 阿里雲簡訊;
- 阿里雲 OSS 儲存大檔案和圖片;
- 應用 https 和 wss 傳輸協議;
原始碼
專案截圖
- 體驗網址:im.luoxune.com
專案結構
- app
- Concole ——————————————————包含應用所有自定義的 Artisan 命令
- Http
- Controllers/Api ———————————————————-處理所有通過介面進入應用的請求
- Middleware ————————————————————–中介軟體
- Requests —————————————————————–請求驗證類
- Resources —————————————————————介面資源類
- Providers ———————————————————-服務提供者類
- Services ———————————————————–服務類
- Applications/LuoXun —————————————GatewayWorker配置檔案目錄
- config —————————————————————-Laravel 配置檔案目錄
- database
- factories ———————————————————- 資料庫工廠目錄
- migrations ——————————————————– 資料庫遷移檔案目錄
- seeds ————————————————————– 資料填充目錄
- public
- plugins ——————————————————- 前端外掛目錄
- layui ———————————————————- 把包含 LayIM 的 Layui 放在這裡
- resources
- css ———————————————————— 前端 CSS 目錄
- js ————————————————————– 前端 JS 目錄
- lang ———————————————————- 多語言設定目錄
- views
- mobile ————————————————————– 手機客戶端
- pc ———————————————————————PC 客戶端
- index.blade.php ————————————————– 首頁檢視
- login.blade.php ————————————————— 登入檢視
- reg.blade.php —————————————————– 註冊檢視
- routes
- api ---------------------------------------------------------------- 介面路由 - web ---------------------------------------------------------------檢視路由
- .env —————————————————— Laravel 全域性配置檔案
安裝使用
我們假設你的伺服器已經配置好了 Laravel 專案環境。
安裝擴充包
composer update
打包 css/js
npm install
npm run production
編輯配置檔案,把XXXX都填上
cp .env_example .env
vim .env
把包含 LayIM 的 layui 放在 /public 目錄下
修改 /resources/views/pc/app.blade.php 和 /resources/views/mobile/app.blade.php 中的域名
var domain = ‘{Yourdomain}/wss’;
配置 nginx,解決 wss 協議問題
#laravel 框架 nginx 配置檔案中的對根目錄的訪問修改為以下
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location /wss {
proxy_pass localhost:5210;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
proxy_set_header Host $host;
}
生成資料加密祕鑰
php artisan key:generate
生成 jwt 令牌祕鑰
php artisan jwt:secret
資料庫遷移
php artisan migrate
填充使用者和群組賬號資料表
php artisan db:seed
上線專案
php artisan up
FAQ
- 為什麼專案中不包含 LayIM 檔案?
LayIM 受國家計算機軟體著作權保護,未經官網正規渠道授權不能公開產品原始檔。當你獲得 LayIM 後把包含 LayIM 的 layui 放在 /public 目錄下即可。 - 為什麼沒有管理後臺?
管理後臺直接運算元據表,與專案中的請求處理邏輯無關。使用 laravel-admin 可以在十分鐘內構建一個功能齊全的管理後臺。 - 有沒有配套文件?
舊版本有配套文件,新版本配套文件還在編寫中。
捐贈
本作品採用《CC 協議》,轉載必須註明作者和本文連結