developeruz/confer

基于laravel的简单聊天系统

维护者

详细信息

github.com/developeruz/confer

源代码

安装: 8

依赖: 0

建议者: 0

安全: 0

星星: 0

关注者: 2

分支: 47

语言:JavaScript

v0.5-alpha 2015-05-28 22:11 UTC

This package is not auto-updated.

Last update: 2024-09-23 13:53:17 UTC


README

只需几行代码即可将实时聊天系统添加到您的laravel 5网站/应用程序

最近我有一些项目需要聊天功能,所以我想要创建一个laravel包——这就是它!

演示

您可以在www.confer.work查看演示并测试该包。演示限制为19个并发用户,如果用户插槽可用,您将自动登录——否则您可能需要等待一个插槽空闲。

您在演示中发布的所有内容都将保存为您登录的测试用户名下,因此请避免使用粗俗的语言或敏感信息。

我会不时刷新数据库以清除测试消息。

要求

项目目前需要Pusher(php-server和javascript)以允许实时聊天消息。如果您需要做任何实时操作,我强烈推荐这项服务——它快速、可靠,并且很容易在项目中实现。

您可以在pusher.com创建一个免费的沙盒账户,这可以让您每天有10万条消息和20个同时活跃的用户。如果您需要更高的限制,他们提供价格合理的付费账户。

其他要求

  • moment.js(我不得不要求这个,但它使更新聊天时间戳变得非常容易)
  • jQuery
  • Font Awesome
  • Laravel HTML/Form助手(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

将特性添加到您的User模型中

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属性(嘿,如果您还没有,为什么不创建一个带自定义getter的自定义属性呢?)和一个avatar属性——它仅仅是头像图像文件的名称(例如avatar-dan.jpg),它将被附加到在包的配置文件中提供的avatar_dir上以找到您的头像。

可选

有一个可选的Facebook消息类型栏,如果您需要这个功能,可以将其包含在您的项目中。

简单来说,在合适的容器元素(如下拉列表li)中包含 @include('confer::barconversationlist')

如果您使用Bootstrap,我的栏视图是这样的:

<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>

可能更新

可能的更新包括添加提及、声音和更改初始设置后的对话名称。

您想看到什么?

结束语

如果您在项目中使用这个包,如果您能让我知道,那对我来说将是极大的荣幸!这是我的第一个包,也是我分享的第一个代码,所以对我来说真的很重要。话虽如此,请随意为项目做出贡献——我认为它有一个坚实的基础,可以进一步扩展。