devsfort/laravel-pigeon-chat

一个Laravel包,只需几个简单步骤,即可将完整的用户消息系统添加到您的新的/现有的Laravel应用程序中。

v1.0 2024-06-12 10:49 UTC

This package is auto-updated.

Last update: 2024-09-12 11:20:42 UTC


README

devsfort logo

# DEVSFORT CHAT WITH SOCKET.IO 一个Laravel包,只需几个简单步骤,即可将完整的用户消息系统添加到您的新的/现有的Laravel应用程序中。

要求

  • PHP >=7
  • Laravel >= 7.4

特性

  • 用户聊天系统。
  • 实时联系人列表更新。
  • 收藏联系人列表(类似故事风格)和添加到收藏按钮。
  • 保存消息到在线消息,如Telegram应用程序。
  • 搜索功能。
  • 联系人项目最后一条消息指示器(例如:你:...)。
  • 实时用户活跃状态。
  • 实时打字指示器。
  • 实时已读消息指示器。
  • 实时网络连接状态。
  • 上传附件(照片/文件)。
  • 共享照片、删除对话等。(用户信息在右侧)。
  • 响应式设计,适用于所有设备。
  • 用户设置和聊天定制:用户个人照片、深色模式、聊天颜色,拥有简单而精美的UI设计。
  • 提供深色和浅色模式,让每个人都满意 😁

安装

YouTube上的视频教程 - 点击这里

或者

按照以下步骤操作

1. 在您的Laravel应用程序中安装包

快速提示:如果您在新的项目中安装此包,请确保安装了Laravel提供的默认用户认证系统。

1.1 安装laravel/ui包

composer require laravel/ui
php artisan ui bootstrap --auth

1.2 安装pigeon包

composer require devsfort/laravel-pigeon-chat

2. 发布资源

要发布的包资源
重要资源

  • config
  • assets
  • migrations

以及可选资源

  • views

要发布资源,请使用以下命令行,并更改tag值...这意味着在--tag=之后写入devschat- + 资源名称,如上所述。
示例

php artisan vendor:publish --tag=devschat-config
  • 注意:发布资源意味着(例如:config)将包的配置文件复制到您的Laravel应用程序的config文件夹中,以及其他资源(包的视图、控制器、迁移等)。

3. 迁移

迁移上一步添加的新migrations

php artisan migrate

4. 存储符号链接

public文件夹中创建指向storage文件夹的快捷方式或符号链接

php artisan storage:link

5. 应用程序配置

对于不支持包自动发现的Laravel <=v5.4,将以下提供程序添加到config/app.php的提供者数组列表中

...
/*
* Package Service Providers...
*/
\DevsFort\Pigeon\Chat\ChatServiceProvider::class,
...

并将以下别名添加到config/app.php的别名中

...
/*
* Class Aliases
*/
\'DevsFortChat' =>DevsFort\Pigeon\Chat\Facade\Chat::class,
...
  • 安装包后,您可以通过默认路径(路由路径)访问信使,默认路径为/devschat,您可以在配置文件config/devschat.php中更改路径名称,如以下配置中所述。
就这样...享受吧:)

配置

您可以在安装步骤的第2步中发布的config/devschat.php文件中找到并修改包的默认配置。所有配置都经过良好文档化,以便其他开发者理解。

  • 所有包的文件都有文档说明,以便理解整个代码。

信使名称

此值是应用在视图或其他地方使用的应用名称。

...
'name' => env('DevsFort_NAME', 'Devsfort Messenger'),
...

您应用中的信使路径

此值是包的路径,或者换句话说,它是该包中所有注册路由的前缀。例如(yourapp.domain/devschat)

...
'path' => env('DevsFort_PATH', 'devschat'),
...

包的Web路由中间件

此值是此包中所有注册路由的中间件,默认为:auth

...
'middleware' => env('DevsFort_MIDDLEWARE', 'auth'),
...

用户头像

这是用户的头像设置,包括

...
'user_avatar' => [
        'folder' => 'users-avatar',
        ...
    ],
...

这是上传和从用户处获取头像的默认文件夹名称。

...
'user_avatar' => [
        ...
        'default' => 'avatar.png',
    ],
...

这是数据库中存储用户的默认头像文件名。当您发布assets时,头像照片的副本将被复制到您的存储路径。

默认附件

此数组包含在此包中使用的默认重要值。

...
'attachments' => [
        'folder' => 'attachments',
        ...
    ],
...

这是存储中attachments的默认文件夹名称,所有附件都将存储在此,并且也将用于视图中的附件URL。

...
'attachments' => [
        ...
        'route' => 'attachments.download',
    ],
...

这是下载附件方法的路由名称。

控制器命名空间

如果您在发布'controllers'资产后需要更改此包的路由控制器命名空间,则此属性用于从默认命名空间更改为您应用的控制器的命名空间。

默认值:DevsFort\Pigeon\Chat\Http\Controllers
如果发布以进行修改,它应该是这样的:App\Http\Controllers\vendor\DevsFort

...
'namespace' => env('DevsFort_ROUTES_NAMESPACE', 'DevsFort\Pigeon\Chat\Http\Controllers'),

启动NODE服务器

  • 对于NodeJS服务器,我们需要安装一些依赖项
  • npm install express socket.io ioredis
  • 在资产发布后,将在public/js/devschat/server.js处创建server.js文件。
  • 通过键入node server.js启动服务器
  • 服务器将在env文件或配置中指定的端口启动

许可证

MIT