jin-chat 是基於EasySwoole與layim 的完整聊天應用
經https://github.com/woann/chat 作者同意, 用EasySwoole V3重構了全部服務端程式碼,在原功能的基礎上增加了Token認證、Redis/mysql協程連線池、Task非同步任務等新功能
專案地址:https://github.com/woann/chat
EasySwoole是為swoole而生的,完美實現swool的全部特性並高度封裝讓使用者能簡單地用上swoole,不用考慮底層的呼叫
LaravelS是一個膠水專案,用於快速整合 Swoole 到 Laravel 或 Lumen,然後賦予它們更好的效能、更多可能性
兩個專案的作者都令人欽佩,Q群我都進去潛水了,LaravelS的作者更願意幫人解釋問題,但LaravelS的設計上更多的相容laravel導致不能很方便的使用swoole的特性,所以我就用es重構了一遍
- 此專案是基於 EasySwoole V3 作為服務端,easySwoole是一款高度封裝了swoole擴充而依舊保持swoole原有特性的一個高效能非同步框架,旨在提供一個高效、快速、優雅的框架給php開發者。
所以在此之前,你要熟悉 swoole、EasySwoole、、還有將他們完美結合的EasySwoole
https://www.easyswoole.com - 前端部分是採用 layui, 在此鄭重說明,layui 中的 im 部分
layim
並不開源,僅供交流學習,請勿將此專案中的 layim 用作商業用途。
- 保證 PHP 版本大於等於 7.1
- 保證 Swoole 擴充版本大於等於 4.3.0
- 需要 pcntl 擴充的任意版本
- 使用 Linux / FreeBSD / MacOS 這三類作業系統
- 使用 Composer 作為依賴管理工具
新功能:
- Token認證
- mysql協程連線池
- Redis協程連線池
- Task非同步任務
- 優化程式碼佈局
原有功能
-
登入 | 沒什麼好說的...
-
註冊 | 註冊過程中為使用者分配了一個預設分組,並將使用者新增到所有人都在的一個群(10001)
-
查詢 - 新增好友 | 可以根據使用者名稱、暱稱、id 來查詢,不輸入內容則查詢所有使用者,點選發起好友申請
-
查詢 - 加入群 | 可根據群暱稱、群 id 查詢群聊,點選加入
-
建立群 | 建立一個群聊
-
訊息盒子 | 用來接受好友請求和同意或拒絕好友請求的系統訊息
-
個性簽名 | 並沒有什麼卵用的功能
-
一對一聊天 | 可傳送文字、表情、圖片、檔案、程式碼等
-
群聊 | 新成員加入群聊時,如果此刻你正開啟著該群對話方塊,將收到新人入群通知
-
檢視群成員
-
臨時會話 | 在群成員中,點選群成員頭像即可發起臨時會話
-
歷史記錄 | 聊天皮膚只顯示 20 條記錄,更多記錄點選
聊天記錄
檢視 -
離線訊息 | 對方不線上的時候,向對方發起好友請求或者訊息,將在對方上線後第一時間推送
-
換膚 | 這個是 layim 自帶的東西。。
安裝
-
執行安裝命令
git clone https://github.com/Double-Jin/jin-chat.git
將專案克隆到本地 -
匯入 sql,專案根目錄下有個
chat.sql
檔案,將該 sql 檔案匯入資料庫即可 -
修改
dev.php
檔案,配置mysql/redis等引數 -
配置nginx代理
server { root /data/wwwroot/chat; server_name es-chat.cc; location / { proxy_http_version 1.1; proxy_set_header Connection "keep-alive"; proxy_set_header X-Real-IP $remote_addr; if (!-f $request_filename) { proxy_pass http://127.0.0.1:9501; } } }
-
修改
App\HttpController\index.php的index
方法中的$hostName
變數為當前域名ws地址 -
執行 EasySwoole
php easyswoole start
-
此時訪問
es-chat.cc
即可進入登入頁面 -
測試賬號
test1
-test2
密碼全是123456
,當然你也可以自行註冊。
部分截圖
LaravelS 作者 Mr. Xie
easySwoole 作者 如果的如果
woann-chat 作者 woann
github給個星星吧