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


    简介

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

  • 相关阅读:
    Memcached学习(一)
    了解下SoftReference
    Java Thread UncaughtExceptionHandler
    csdn 不登录浏览全文 chrome 浏览器
    postgresql 主从 patroni
    熔断,限流,降级
    CentOS7.4 源码安装MySQL8.0
    CentOS BIND9安装及配置
    Linux安全之SYN攻击原理及其应对措施
    fping常用参数介绍
  • 原文地址:https://www.cnblogs.com/a609251438/p/12720757.html
Copyright © 2020-2023  润新知