hyperf-im 开源啦! 基于 hyperf 微服务框架 +layim 开发的一套聊天系统!

感谢sl-im作者提供的demo,自己就是想写一套im,用hyperf重写.

sl-im

hyperf-im

0rNfmhCSVt.jpeg!large

Php Version
Swoole Version
sl-im License

简介

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

体验地址

hyperf-im im.jayjay.cn

功能

1.0

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

1.1

  • webrtc(视频聊天)

Requirement

部署方式

Composer

composer update

env配置

vim .env

WS_URL=wss://im.jayjay.cn/im
STORAGE_IMG_URL=$host/storage/upload/
STORAGE_FILE_URL=$host/file/upload/
APP_URL=https://im.jayjay.cn
WEB_RTC_URL=wss://im.jayjay.cn/video

nginx配置

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 /video {
             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;
    }
}

Start

  • 挂起
php bin/hyperf.php start

TODO

1.完善整体项目
2.rabbitmq消息记录,看接下来是否上分布式

联系方式

  • WeChat:naicha_1994
  • QQ:847050412

License

LICENSE

更新记录

解决了进入聊天室未登录重定向到443端口的问题。

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 9个月前 自动加精
讨论数量: 11
huanbird

不能composer 安装吗?

9个月前 评论
CodingHePing (楼主) 9个月前

我看了代码,有个疑问点,为何异常处理那块为何不作统一处理? 每个方法都写一遍try catch 太繁琐了,可以参考下文档推荐的方案 doc.hyperf.io/#/zh-cn/exception-ha...

9个月前 评论
huanbird 9个月前
xiaoguo0426 (作者) 9个月前
CodingHePing (楼主) 9个月前
cnguu

没有移动版的聊天不是好聊天 :hatched_chick:

9个月前 评论

代码有放出来吗?

9个月前 评论
CodingHePing (楼主) 9个月前
xiaoyin199

zhuanlan.zhihu.com/p/145311620,知乎上引用的这里的文章。里面有个资料赠送部分纯属扯淡。课程资料都是骗人的!加了就给发了5个视频,还成体系!有点扯!付费就说付费!除非我理解而的免费资料不是面的截图。然后直接给移除群!扯淡的不能在扯谈。这点开源精神挺好的…… 挣钱就挣钱不丢人,开源挣钱也不丢人,满嘴跑火车就丢大发了 !知乎还能删评论,learnku能删除也没事。

8个月前 评论
CodingHePing (楼主) 8个月前
xiaoyin199 (作者) 8个月前
小手冰凉 8个月前
ThinkCsly

163 邮箱都不支持,注册不了

8个月前 评论
CodingHePing (楼主) 8个月前

更新了进入聊天室未登录情况下重定向到443端口的问题。

6个月前 评论

composer update 怎么也安装不了的 报这个错是怎么回事啊 Your requirements could not be resolved to an installable set of packages.

5个月前 评论
CodingHePing (楼主) 5个月前

怎么没有迁移文件啊

3个月前 评论
CodingHePing (楼主) 3个月前

视频聊天好像不支持啊,video.js:117 the getUserMedia is not supported!

3个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!