sevenspan/laravel-chat

Laravel Chat 包简化了一对一和群聊集成,便于在聊天中共享文档,管理已读和未读消息数,并支持将文档上传到本地和 AWS S3 存储

1.5.1 2024-05-22 05:57 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 参数支持的值是 imagezip

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许可证授权。您可以根据许可证条款自由使用、修改和分发它。