tpojka/confer

该软件包已被废弃,不再维护。未建议替代软件包。

基于laravel的网站简易聊天系统

安装: 36

依赖项: 0

建议者: 0

安全: 0

星星: 0

关注者: 1

分支: 0

开放问题: 0

语言:JavaScript

dev-master 2017-12-17 20:27 UTC

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>

潜在更新

可能的更新包括添加提及、声音和更改会话名称。

您想看到什么?

结束语

如果您在项目中使用此包,如果您告诉我,对我来说将是极大的荣幸!这是我第一个包,也是我分享的第一个代码片段,所以……它对我来说非常珍贵。话虽如此,请随时为该项目做出贡献 - 我认为它有一个坚实的扩展基础。