VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • 基于 hyperf 微服务框架 +layim 开发的一套聊天系统!

简介

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

体验地址

hyperf-im im.jayjay.cn

功能

Github

hyperf-im

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

Requirement

  • PHP 7.2+
  • Swoole 4.4.16+
  • Composer
  • Hyperf >= 1.1.x

部署方式

Composer

composer update

env 配置

vim .env

1
2
3
4
WS_URL=wss://im.jayjay.cn/im
APP_URL=https://im.jayjay.cn
STORAGE_IMG_URL=
STORAGE_FILE_URL=

  

 

nginx 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
server{
 listen 80;
    server_name im.jayjay.cn;
    return 301 https://$server_name$request_uri;
}
 
server{
 listen 443 ssl;
    root /data/wwwroot/;
    add_header Strict-Transport-Security "max-age=31536000";
    server_name im.jayjay.cn;
    access_log /data/wwwlog/im.jayjay.cn.access.log;
    error_log /data/wwwlog/im.jayjay.cn.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:9501;
        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:9502;
        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;
    }
}