busart / laravel-messenger
为 Laravel PHP 框架添加完整实时聊天系统的软件包。
Requires
- niklasravnsborg/laravel-pdf: ^4.1
- pusher/pusher-php-server: ^6.0|^7.0|^7.1
README
Laravel Messenger
Laravel 的一对一聊天系统包,只需一条命令即可将完整实时聊天系统添加到您的现有 Laravel 应用程序。
需要帮助?📣
我在 Discord
上创建了一个 Laravel Messenger 服务器,让您保持最新状态,并尽可能地帮助您。因此,现在您可以和我聊天,获取帮助,展示,最重要的是获取有关 Laravel Messenger 的公告和更新。
所以,https://discord.gg/JSTUHUfA 并保持更新。
特性
- 一对一用户聊天系统。
- 实时联系人列表更新。
- 搜索功能。
- 联系人项的最后一条消息指示器(例如:您:...)。
- 实时消息已读指示器。
- 上传附件。
- 将附件上传到公开、Google 和 Amazon AWS S3 存储桶。默认情况下为公开,您可以在配置文件中更新它)
- 发送表情符号。
- 删除消息和聊天。
- 响应式设计,适用于所有设备,具有简单而精美的 UI 设计。
...还有更多,您需要自己探索。
文档
安装
步骤 1:安装 Laravel
这是可选的;然而,如果您尚未创建 Laravel 应用程序,则可以执行以下命令继续操作。
composer create-project laravel/laravel example-app
步骤 2:设置数据库配置
安装 Laravel 应用程序成功后,配置数据库设置。然后我们将打开 ".env" 文件,并在该文件中更改数据库名称、用户名和密码。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=Enter_Your_Database_Name
DB_USERNAME=Enter_Your_Database_Username
DB_PASSWORD=Enter_Your_Database_Password
步骤 3:安装 Auth Scaffold
安装 Laravel Breeze 以快速开始身份验证
composer require laravel/breeze --dev
Composer 安装 Laravel Breeze 软件包后,您可以运行 breeze:install
Artisan 命令。此命令将身份验证视图、路由、控制器和其他资源发布到您的应用程序。Laravel Breeze 将其所有代码发布到您的应用程序,以便您可以完全控制并查看其功能和实现。
breeze:install
命令将提示您选择您首选的前端堆栈和测试框架
php artisan breeze:install
php artisan migrate
npm install
npm run dev
软件包安装
通过执行以下命令将软件包添加到您的 composer.json 中。
composer require bushart/laravel-messenger
这将安装 Pusher 软件包。
因此,更新 .env 文件。
BROADCAST_DRIVER=log to BROADCAST_DRIVER=pusher
PUSHER_APP_ID="Pusher App Id"
PUSHER_APP_KEY="Pusher provided app key"
PUSHER_APP_SECRET="Pusher provided app secret"
PUSHER_APP_CLUSTER="The app cluster you select on creating app on pusher"
安装 Messenger
您只需运行以下命令即可为您设置一切
php artisan messenger:install
此命令将自动执行以下操作
-
一些配置。
-
发布资产(配置、视图、资产、模型、迁移)。
迁移
运行以下命令以运行迁移。
php artisan migrate
安装软件包后,您可以通过默认路径(路由前缀)访问 messenger,默认路径为 /messenger,您可以在配置文件 config/messenger.php 中更改路径名称,如以下配置所述。
##配置
您可以在应用程序的 config/messenger.php 中找到软件包的配置文件,并找到以下可以在其中修改的属性
显示名称
此值是 UI 中显示的 messenger 名称。
'name' => env('MESSENGER_NAME', 'Laravel Messenger'),
文件上传磁盘
-
定义文件上传的默认存储磁盘。
-
将设置为 'google' 或 's3' 以分别使用 Google Cloud Storage 或 Amazon S3,
-
或将其保留为 'public' 以使用默认本地文件系统存储。
'storage_disk_name' => env('MESSENGER_STORAGE_DISK', 'public'),
如果您想使用Google上传文件,您需要将Google Cloud安装到您的项目中。
composer require google/cloud-storage
如果您想使用AWS S3上传文件,您需要将aws s3 sdk安装到您的项目中。
composer require league/flysystem-aws-s3-v3
文件图标配置(不包括图片和视频)
定义文件扩展名及其相应的图标,用于显示上传的文件(不包括图片和视频)。
'file_icons' => [
'pdf' => 'far fa-file-pdf',
'doc' => 'far fa-file-word',
'docx' => 'far fa-file-word',
'xls' => 'far fa-file-excel',
'xlsx' => 'far fa-file-excel',
'ppt' => 'far fa-file-powerpoint',
'pptx' => 'far fa-file-powerpoint',
'txt' => 'far fa-file-alt',
'csv' => 'far fa-file-csv',
'ai' => 'far fa-file-illustrator',
'psd' => 'far fa-file-photoshop',
'zip' => 'far fa-file-archive',
'rar' => 'far fa-file-archive',
// Add more file extensions and their corresponding icons here
],
路由配置
此值是包的路由配置
'routes' => [
'prefix' => env('MESSENGER_ROUTES_PREFIX', 'messenger'),
'middleware' => env('MESSENGER_ROUTES_MIDDLEWARE', ['web','auth']),
'namespace' => env('MESSENGER_ROUTES_NAMESPACE', 'bushart\messenger\Http\Controllers'),
],
prefix
是此包中路由的前缀,因此您可以通过访问/messenger
来访问消息传递。
Pusher配置
从这里您可以更改Pusher的配置,
'pusher' => [
'debug' => env('APP_DEBUG', false),
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
'encrypted' => env('PUSHER_APP_USETLS'),
],
],
自定义
您可能想要对代码进行自己的自定义和修改,例如视图或控制器以添加新功能。因此,您只需要发布以下必需的资产,并开始您的自定义!
包的资产
config
views
assets(css,js,images, libs)
models
migrations
controllers
以下资产在安装过程中已经发布:config, views, assets, models, migrations,只有控制器资产在您操作之前没有发布。
发布资产
当您需要发布资产时,您只需要运行以下命令
php artisan vendor:publish --tag=messenger-
将所需的资产名称(例如css)改为messenger-css
控制器
您可能想要对此包的控制器进行一些修改,因此您需要遵循以下步骤
- 发布
controllers
资产
php artisan vendor:publish --tag=messenger-controllers
- 转到config/messenger.php,并从路由属性中,将命名空间更改为App\Http\Controllers\Bushart\Messenger,如下所示
config/messenger.php
...
'namespace' => env('MESSENGER_ROUTES_NAMESPACE', 'bushart\messenger\Http\Controllers'),
- 转到app\Http\Controllers\Bushart\Messenger,并使用您的代码编辑器打开MessengerController.php。然后,将命名空间更改为上述第2步中指定的相同命名空间。
这就是您需要做的。
现在,您可以与包的控制器一起工作,并开始您的修改。
升级消息传递
当升级到任何新的Chatify版本时,您应该重新发布消息传递的资产
php artisan messenger:publish
为了保持资产的最新状态并避免未来更新的问题,您可以将messenger:publish命令添加到应用程序的composer.json文件
中的post-update-cmd脚本中
composer.json
{
"scripts": {
"post-update-cmd": [
"@php artisan messenger:publish --ansi"
]
}
}
作者
许可
Laravel Messenger在https://choosealicense.com/licenses/mit/下授权