# Lumen-IM
## 1、简介
Lumen-IM 是一个网页版在线即时聊天项目,前端使用 Element-ui + Vue ,后端使用 PHP + Swoole 进行开发。项目后端采用 Hyperf 框架。
- 基于 Swoole WebSocket 服务做消息即时推送
- 支持私聊及群聊
- 支持聊天消息类型有文本、代码块、图片及其它类型文件,并支持文件下载
- 支持聊天消息撤回、删除或批量删除、转发消息(逐条转发、合并转发)及群投票功能
- 支持编写个人笔记、支持笔记分享(好友或群)
## 2、项目DEMO
- 地址: [http://im.gzydong.club](http://im.gzydong.club)
- 账号: 18798272054 或 18798272055
- 密码: admin123
## 3、环境要求
- PHP >= 7.3
- MySQL >= 5.7
- Redis >= 5.0
- Swoole >= 4.5
- OpenSSL
- JSON
- PDO
## 4、相关文档
[Hyperf 框架](https://hyperf.wiki/2.1/#/README)
## 5、项目安装
1. 下载源码包
2. 安装框架依赖包执行 `composer install` 命令 [项目根目录下执行]
2. 拷贝项目根目录下 .env.example 文件为 .env 并正确配置相关参数(mysql、redis)
3. 执行项目安装命令(安装数据库及测试数据) `php bin/hyperf.php system:install`
4. 启动运行项目 `php bin/hyperf.php start`
注 :[项目运行之前请确保 MySQL、Redis 及 Nginx 服务]
## Nginx 相关配置(代理 swoole 服务)
##### 配置 Http 服务
```
upstream hyperf_http {
# Hyperf HTTP Server 的 IP 及 端口
server 127.0.0.1:9503;
}
server {
# 监听端口
listen 80;
# 绑定的域名,填写您的域名
server_name im-serve.xxx.com;
location / {
client_max_body_size 20m;
# 将客户端的 Host 和 IP 信息一并转发到对应节点
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 转发Cookie,设置 SameSite
proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict";
# 执行代理访问真实服务器
proxy_pass http://hyperf_http;
}
}
```
##### 配置 WebSocket 服务
```
# 至少需要一个 Hyperf 节点,多个配置多行
upstream hyperf_websocket {
server 127.0.0.1:9504;
}
server {
listen 80;
server_name im-socket.xxx.com;
location / {
# WebSocket Header
proxy_http_version 1.1;
proxy_set_header Upgrade websocket;
proxy_set_header Connection "Upgrade";
# 将客户端的 Host 和 IP 信息一并转发到对应节点
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
# 客户端与服务端无交互 60s 后自动断开连接,请根据实际业务场景设置
proxy_read_timeout 60s ;
# 执行代理访问真实服务器
proxy_pass http://hyperf_websocket;
}
}
```
##### 配置图片域名
```
server {
listen 80;
server_name im-img.xxx.xxx;
index index.html;
# 默认禁止访问
location / {
deny all;
}
# 只允许 访问 images 文件夹下的文件
location ^~ /media/{
# 设置目录别名(确保是项目上传文件目录)
# 例如 upload_dir = /www/data/lumenim
# 此时应配置 alias /www/data/lumenim/media/
alias /www/data/lumenim/media/;
# 设置缓存时间(3天)
expires 3d;
# 关闭访问日志
access_log off;
}
}
```
### 前端地址
[https://github.com/gzydong/LumenIM](https://github.com/gzydong/LumenIM/tree/php-frontend)
### 注意事项
1. 请确保 PHP 安装 openssl、redis 扩展
2. 请确保 Swoole 扩展开启 openssl 扩展
```
[root@iZuf6cs69fbc86cwpu9iv3Z vhost]# php --ri swoole
swoole
Swoole => enabled
Author => Swoole Team <team@swoole.com>
Version => 4.5.9
...
openssl => OpenSSL 1.0.2k-fips 26 Jan 2017 (请确保此处开启)
```
没有合适的资源?快使用搜索试试~ 我知道了~
Lumen IM 是一个网页版在线聊天项目,前端使用 Element-ui + Vue,后端采用了基于 Swoole.zip
共240个文件
php:228个
yml:2个
md:2个
需积分: 0 1 下载量 6 浏览量
2024-03-03
21:47:02
上传
评论
收藏 220KB ZIP 举报
温馨提示
Lumen IM 是一个网页版在线聊天项目,前端使用 Element-ui + Vue,后端采用了基于 Swoole.zip
资源推荐
资源详情
资源评论
收起资源包目录
Lumen IM 是一个网页版在线聊天项目,前端使用 Element-ui + Vue,后端采用了基于 Swoole.zip (240个子文件)
Dockerfile 2KB
.env.example 892B
.gitignore 111B
composer.json 3KB
README.md 4KB
README.md 15B
phpstan.neon 474B
ArticleService.php 19KB
GroupService.php 16KB
MessageController.php 16KB
TalkService.php 11KB
RepositoryTrait.php 10KB
validation.php 9KB
ExampleRepository.php 9KB
TalkMessageService.php 9KB
TalkForwardService.php 9KB
validation.php 8KB
FormatMessageService.php 8KB
ArticleController.php 8KB
SubscribeHandleService.php 8KB
TalkController.php 7KB
TalkSessionService.php 7KB
UsersController.php 6KB
RecordsController.php 6KB
GroupController.php 6KB
EmoticonController.php 6KB
BaseRepository.php 6KB
AnnexController.php 6KB
SplitUploadService.php 5KB
helper.php 5KB
EmoticonService.php 5KB
ContactController.php 5KB
AuthController.php 5KB
ContactApplyService.php 5KB
MemberController.php 4KB
ContactApplyController.php 4KB
UserService.php 4KB
ZSetRedis.php 4KB
WebSocketController.php 4KB
StreamRedis.php 4KB
file.php 4KB
UploadController.php 4KB
NoticeController.php 4KB
auth.php 3KB
ClassController.php 3KB
SmsCodeService.php 3KB
verify-code.blade.php 3KB
CommonController.php 3KB
RegularHelperTest.php 3KB
GroupNoticeService.php 3KB
server.php 3KB
SocketClientService.php 3KB
ReceiveHandleService.php 2KB
SendEmailCode.php 2KB
SocketUserBindFds.php 2KB
error-notice.blade.php 2KB
Response.php 2KB
QueueHandleListener.php 2KB
AppExceptionHandler.php 2KB
LockRedis.php 2KB
message.php 2KB
2020_11_04_153431_create_talk_records_table.php 2KB
HashRedis.php 2KB
initialize.php 2KB
TalkSession.php 2KB
TagController.php 2KB
2020_11_04_153358_create_split_upload_table.php 2KB
SetGroupRedis.php 2KB
2020_11_04_153442_create_talk_records_file_table.php 2KB
mail.php 2KB
GroupMemberService.php 2KB
RemoveWsCacheCommand.php 2KB
HashGroupRedis.php 2KB
2020_11_04_153251_create_article_annex_table.php 2KB
ContactsService.php 2KB
2020_11_04_153238_create_article_table.php 2KB
2020_11_04_153636_create_group_notice_table.php 2KB
SetRedis.php 2KB
Article.php 2KB
2020_11_04_153616_create_group_table.php 2KB
SplitUpload.php 2KB
UnreadTalkCache.php 2KB
2020_11_04_153421_create_talk_session_table.php 2KB
2021_08_01_183045_create_talk_records_vote_table.php 2KB
DbQueryExecutedListener.php 2KB
LoginListener.php 2KB
2020_11_04_152602_create_users_table.php 2KB
2020_11_04_153626_create_group_member_table.php 2KB
JWTAuthMiddleware.php 2KB
2021_08_01_183126_create_talk_records_login_table.php 2KB
TalkRecords.php 2KB
StringRedis.php 2KB
2021_07_02_165853_create_robot_table.php 2KB
Mailer.php 1KB
InstallCommand.php 1KB
GroupNotice.php 1KB
LastMessage.php 1KB
ListRedis.php 1KB
FriendRemark.php 1KB
Group.php 1KB
共 240 条
- 1
- 2
- 3
资源评论
日刷百题
- 粉丝: 5595
- 资源: 951
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功