欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-10 21:24:12
简介 sl-im 是基于 Swoft 微服务协程框架和 Layim 网页聊天系统 所开发出来的聊天室。 体验地址 sl-im https://im.gaobinzhan.com 演示图 功能 登录注册(Http) 单点登录(Websocket) 私聊(Websocket) 群聊(Websocket) ......

 

 

 

简介

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

体验地址

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

演示图

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

 

 

 

功能

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