sevenspan / laravel-chat
Laravel Chat 包简化了一对一和群聊集成,便于在聊天中共享文档,管理已读和未读消息数,并支持将文档上传到本地和 AWS S3 存储
Requires
- php: ^8.1 || ^8.2
- aws/aws-sdk-php: ^3.283
- league/flysystem-aws-s3-v3: ^3.0
- spatie/laravel-sluggable: ^3.5
This package is not auto-updated.
Last update: 2024-09-25 07:42:59 UTC
README
Laravel Chat 包简化了一对一和群聊集成,便于在聊天中共享文档,管理已读和未读消息数,并支持将文档上传到本地和 AWS S3 存储
索引
先决条件
在开始之前,请确保已安装以下先决条件
- PHP >= 8.1 (支持 8.2)
- Composer >= 2.0
- Laravel >= 8.1 (支持 L10 和 L11)
- AWS API 凭证(可选)
- Pusher
特性
- 一对一聊天集成
- 群聊集成
- 聊天中的文档共享
- 已读和未读消息数管理
- 本地存储文档上传支持
- AWS S3 存储文档上传支持
- 消息体加密和解密
安装
要安装此包,请使用 Composer
composer require sevenspan/laravel-chat
配置
要配置包,使用以下命令发布迁移文件
php artisan vendor:publish --provider="SevenSpan\Chat\Providers\ChatServiceProvider"
此命令将配置文件 chat.php 发布到您的项目的配置目录中。
如果您本地缓存了配置,请使用以下命令之一清除配置缓存
php artisan optimize:clear
发布迁移并配置后,运行以下命令创建此包所需的表
php artisan migrate
要配置消息体加密,请将以下密钥添加到 .env
文件中。
CHAT_ENCRYPT_MESSAGE=true #boolean
用法
安装包后,您可以在 Laravel 应用程序中使用其功能。以下是使用一些主要功能的方法概述
1. 列出频道
使用 list
方法获取所有频道。
use SevenSpan\Chat\Facades\Channel; // $userId = 12; (Required) // $perPage = 10; (Optional) Channel::list($userId, $perPage);
2. 频道详情
使用 detail
方法获取频道的详细信息。
use SevenSpan\Chat\Facades\Channel; // $userId = 12; (Required) // $channelId = 10; (Required) Channel::detail($userId, $channelId);
3. 创建频道
使用 create
方法创建新频道。
use SevenSpan\Chat\Facades\Channel; // $userId = 12; (Required) // $receiverId = 10; (Required) // $channelName = "Goverment project" (Required) Channel::create($userId, $receiverId, $channelName);
4. 更新频道
使用 update
方法更新频道详细信息。
use SevenSpan\Chat\Facades\Channel; // $userId = 12; (Required) // $receiverId = 10; (Required) // $channelName = "Goverment project" (Required) Channel::update($userId, $receiverId, $channelName);
5. 删除频道
使用 delete
方法删除频道。
use SevenSpan\Chat\Facades\Channel; // $userId = 12; (Required) // $channelId = 10; (Required) Channel::delete($userId, $channelId);
6. 清除频道历史记录
使用 clearMessage
方法清除聊天历史记录。
use SevenSpan\Chat\Facades\Channel; // $userId = 1; (Required) // $channelId = 1 (Required) Channel::clearMessage($userId, $channelId);
7. 列出消息
使用 list
方法获取频道的所有消息。
use SevenSpan\Chat\Facades\Message; // $userId = 1; (Required) // $channelId = 1 (Required) // $perPage = 10; (Optional) Message::list($userId, $channelId, $perPage);
8. 发送消息
使用 send
方法发送消息。
use SevenSpan\Chat\Facades\Message; // $userId = 1; (Required) // $channelId = 1 (Required) // $data = [ // 'body' => 'TEXT_MESSAGE', // 'file' => Image Or Document // ]; (Required) Message::send($userId, $channelId, $data);
注意
$data 参数中需要 body 或 file。
9. 获取文件消息
使用 getFiles
方法获取频道的文档。
use SevenSpan\Chat\Facades\Message; // $userId = 1; (Required) // $channelId = 1 (Required) // $type = 'image' (Default: image) // $perPage = 10; (Optional) Message::getFiles($userId, $channelId, $type, $perPage);
注意
$type 参数支持的值是 image
或 zip
。
10. 删除消息
使用 delete
方法删除消息。
use SevenSpan\Chat\Facades\Message; // $userId = 1; (Required) // $channelId = 1 (Required) // $messageId = 10; (Required) Message::delete($userId, $channelId, $messageId);
11. 读取消息
使用 read
方法读取频道的消息。
use SevenSpan\Chat\Facades\Message; // $userId = 1; (Required) // $channelId = 1 (Required) // $messageId = 10; (Required) Message::read($userId, $channelId, $messageId);
注意
小于 $messageId 的值的消息将自动读取。
12. 用户列表
使用 list
方法获取用户列表,并搜索用户名。
use SevenSpan\Chat\Facades\User; // $userId = 1; (Required) // $name = "John Doe" (Optional) // $perPage = 10; (Optional) User::list($userId, $name, $perPage);
致谢
贡献
如果在使用此软件包时遇到任何问题或希望为此软件包做出贡献,我们欢迎社区成员的贡献来改进和增强此软件包。如果您想做出贡献,请遵循我们的贡献指南。
- 将此存储库分支。
- 将分支克隆到您的本地机器。
- 为您的功能或错误修复创建一个新分支:git checkout -b feature/your-feature-name
- 进行更改并提交:git commit -m '添加新功能'
- 将您的更改推送到您的分支:git push origin feature/your-feature-name
- 向原始存储库创建一个拉取请求。
许可证
此软件包是开源软件,根据MIT许可证授权。您可以根据许可证条款自由使用、修改和分发它。