busart/laravel-messenger

为 Laravel PHP 框架添加完整实时聊天系统的软件包。

1.4 2024-01-02 12:05 UTC

This package is auto-updated.

Last update: 2024-10-01 00:09:24 UTC


README

Laravel Messenger

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

控制器

您可能想要对此包的控制器进行一些修改,因此您需要遵循以下步骤

  1. 发布controllers资产

php artisan vendor:publish --tag=messenger-controllers

  1. 转到config/messenger.php,并从路由属性中,将命名空间更改为App\Http\Controllers\Bushart\Messenger,如下所示
config/messenger.php

...
 'namespace' => env('MESSENGER_ROUTES_NAMESPACE', 'bushart\messenger\Http\Controllers'),
  1. 转到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/下授权