您的位置:首页 > 运维架构 > Nginx

sl-im 基于 swoft+layim 的聊天室

2020-04-18 15:24 411 查看

【推荐阅读】微服务还能火多久?>>>

 

 

 

简介

sl-im 是基于 Swoft 微服务协程框架和 Layim 网页聊天系统 所开发出来的聊天室。

体验地址

sl-im https://im.gaobinzhan.com

演示图

 

 

 

功能

  • 登录注册(Http)
  • 单点登录(Websocket)
  • 私聊(Websocket)
  • 群聊(Websocket)
  • 在线人数(Websocket)
  • 获取未读消息(Websocket)
  • 好友在线状态(Websocket)
  • 好友 查找 添加 同意 拒绝(Http+Websocket)
  • 群 创建 查找 添加 同意 拒绝(Http+Websocket)
  • 聊天记录存储
  • 心跳检测
  • 消息重发
  • 断线重连

Requirement

部署方式

 

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高级开发工程师简历打造,祝你金三银四跳槽加薪

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  websocket php nginx composer