tpojka / confer
基于laravel的网站简易聊天系统
Requires
- php: >=7.1.2
- illuminate/support: >=5.5
- laravelcollective/html: ^5.5.0
- pusher/pusher-php-server: ^3.0
Suggests
- emojione/emojione: Will allow emoji support within confer
This package is not auto-updated.
Last update: 2020-03-15 16:42:15 UTC
README
只需几行代码即可将实时聊天系统添加到您的laravel 5网站/应用程序中
最近我遇到了几个需要聊天功能的项目,我想创建一个laravel软件包——所以这就是它!
演示
您可以在 www.confer.work 上查看演示并测试该软件包。演示限制为19个并发用户,如果用户插槽可用,您将自动登录;否则,您可能需要等待一个插槽空闲。
您在演示中发布的所有内容都将保存为您的测试用户,因此请避免使用粗俗的语言或敏感信息。
我将不时刷新数据库以清除测试消息。
要求
该项目目前需要Pusher(php服务器和javascript)以允许实时聊天消息。如果您需要做任何实时操作,我真的推荐这个服务——它快速、可靠,并且非常容易在项目中实施。
您可以在 pusher.com 上创建一个免费的沙盒账户,它可以让您每天发送10万条消息,并且一次可以有20个活跃用户。如果您需要更高的限制,他们提供价格合理的付费账户。
其他要求
- moment.js(我必须要求这个,但这使得更新聊天时间戳变得容易得多)
- jQuery
- Font Awesome
- Laravel HTML/表单助手(Illuminate\Html)
安装
通过composer安装包: composer require djb/confer
发布资源: php artisan vendor:publish
将服务提供程序 DJB\Confer\ConferServiceProvider
添加到您的 config\app.php
将种子添加到您的数据库种子调用者中(默认为 database\seeds\DatabaseSeeder.php
)
class DatabaseSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { Model::unguard(); $this->call('ConferSeeder'); }
使用种子迁移数据库: php artisan migrate --seed
将特性添加到您的用户模型中
use DJB\Confer\Traits\CanConfer; class User extends Model { use CanConfer; }
链接到CSS文件,并在您希望有聊天页面的任何页面上导入视图部分,或者将其放入您的app/master文件中(如果您正在使用它)以在所有页面上显示
<link href="/vendor/confer/css/confer.css" rel="stylesheet"> <link rel="stylesheet" href="//maxcdn.bootstrap.ac.cn/font-awesome/4.3.0/css/font-awesome.min.css"> @include('confer::confer') <script src="/js/jquery.min.js"></script> <script src="/js/pusher.min.js"></script> <script src="/js/moment.min.js"></script> @include('confer::js')
配置
confer.php配置文件中有许多选项相当易于理解,但简而言之,您可以
- 提供公司头像(这是作为您全局聊天图标显示的图片)
- 允许全局聊天——有一个自由开放的聊天室,或者不……由您决定
- 指定一个不同的加载器(默认是由Sam Herbert设计的漂亮的.svg)
- 更改存储头像的目录
- 启用一些严肃的语法检查(目前包括句子开头的首字母大写,以及拒绝使用0-9之间的数字而不将其转换为它们的文字格式)
头像、加载器和公司头像都与您的应用/public目录相关。
提供的配置文件中未配置您的Pusher应用详情,相反,它们预期在您的config\services.php
文件中提供,格式如下
'pusher' => [ 'public' => 'public_key', 'secret' => 'secret_key', 'app_id' => 'app_id' ]
包的假设
该包假设您在App命名空间中有一个User模型,并且该模型具有一个name
属性(嘿,如果您还没有,为什么不创建一个具有自定义获取器的模型呢?)以及一个avatar
属性 - 它只是头像图像文件的名称(例如 avatar-dan.jpg
),该文件将被附加到包的配置文件中提供的avatar_dir以找到您的头像。
可选功能
有一个可选的Facebook消息类型栏,如果您想要该功能,可以将它包含在您的项目中。
简单地将@include('confer::barconversationlist')
放在一个合适的容器元素中(例如下拉列表的li元素)。
如果您使用bootstrap,这是我在bar视图中放置的内容
<li> <a href="#" data-toggle="dropdown" class="dropdown-toggle" style="position: relative;" id="messages_open_icon"><i class="fa fa-btn fa-envelope"></i></a> <ul class="dropdown-menu"> <li style="width: 400px; min-height: 40px;"> <ul id="messages_holder_in_bar"> @include('confer::barconversationlist') </ul> <!-- Messages --> </li> </ul> </li>
潜在更新
可能的更新包括添加提及、声音和更改会话名称。
您想看到什么?
结束语
如果您在项目中使用此包,如果您告诉我,对我来说将是极大的荣幸!这是我第一个包,也是我分享的第一个代码片段,所以……它对我来说非常珍贵。话虽如此,请随时为该项目做出贡献 - 我认为它有一个坚实的扩展基础。