簡介
sl-im 是基于 Swoft 微服務協程框架和 Layim 網頁聊天系統 所開發出來的聊天室,
體驗地址
sl-im https://im.gaobinzhan.com
演示圖

功能
- 登錄注冊(Http)
- 單點登錄(Websocket)
- 私聊(Websocket)
- 群聊(Websocket)
- 在線人數(Websocket)
- 獲取未讀訊息(Websocket)
- 好友在線狀態(Websocket)
- 好友 查找 添加 同意 拒絕(Http+Websocket)
- 群 創建 查找 添加 同意 拒絕(Http+Websocket)
- 聊天記錄存盤
- 心跳檢測
- 訊息重發
- 斷線重連
Requirement
- PHP 7.1+
- Swoole 4.3.4+
- Composer
- Swoft >= 2.0.8
部署方式
Composer
composer update
bean
app/bean.php
'db' => [
'class' => Database::class,
'dsn' => 'mysql:dbname=im;host=127.0.0.1:3306',
'username' => 'root',
'password' => 'gaobinzhan',
'charset' => 'utf8mb4',
],
'db.pool' => [
'class' => \Swoft\Db\Pool::class,
'database' => bean('db'),
'minActive' => 5, // 自己調下連接池大小
'maxActive' => 10
],
資料表遷移
php bin/swoft mig:up
env 配置
vim .env
# basic APP_DEBUG=0 SWOFT_DEBUG=0 # more ... APP_HOST=https://im.gaobinzhan.com/ WS_URL=ws://im.gaobinzhan.com/im # 是否開啟靜態處理 這里我關了 讓nginx去處理 ENABLE_STATIC_HANDLER=false # swoole v4.4.0以下版本, 此處必須為絕對路徑 DOCUMENT_ROOT=/data/wwwroot/IM/public
nginx 配置
server{
listen 80;
server_name im.gaobinzhan.com;
return 301 https://$server_name$request_uri;
}
server{
listen 443 ssl;
root /data/wwwroot/IM/public/;
add_header Strict-Transport-Security "max-age=31536000";
server_name im.gaobinzhan.com;
access_log /data/wwwlog/im-gaobinzhan-com.access.log;
error_log /data/wwwlog/im-gaobinzhan-com.error.log;
client_max_body_size 100m;
ssl_certificate /etc/nginx/ssl/full_chain.pem;
ssl_certificate_key /etc/nginx/ssl/private.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
location / {
proxy_pass http://127.0.0.1:9091;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /im {
proxy_pass http://127.0.0.1:9091;
proxy_http_version 1.1;
proxy_read_timeout 3600s;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location ~ .*\.(js|ico|css|ttf|woff|woff2|png|jpg|jpeg|svg|gif|htm)$ {
root /data/wwwroot/IM/public;
}
}
Start
- 掛起
php bin/swoft ws:start
- 守護行程化
php bin/swoft ws:start -d
- 訪問
怎么訪問還用寫嗎???點個 贊吧
感謝 swoft 團隊
PHP高級開發工程師簡歷打造,祝你金三銀四跳槽加薪
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/55119.html
標籤:PHP
