打造你的Laravel即时应用一项目初始化构建

37次阅读

共计 1242 个字符,预计需要花费 4 分钟才能阅读完成。

打造你的 Laravel 即时应用 (一)- 项目初始化构建

关于即时应用

在现代 Web 应用开发中, 即时交互场景越来越多, 比如场景的就有: 即时聊天, 即时通知, 第三方登录, 扫码登录等功能, 都需要接入即时场景来完善。

在过去,为了实现这种即时通讯,能让客户端正确响应处理结果,最为常用的技术就是轮询,因为 HTTP 协议的单向性,客户端只能一遍一遍的主动询问服务端的处理结果。这种方式有显见的缺陷,占用服务端资源不说,还不能实时获得服务端处理结果。

现在,我们可以使用 WebSocket 协议来处理实时交互,它是一种双向协议,允许服务端主动推送信息到客户端。

本篇我将使用 Laravel 来进行构建一个即时的通知应用, 需要运用到以下知识:

  • Laravel Broadcast Event(广播事件)
  • Redis
  • Vue
  • Laravel-Echo

(一)、广播系统配置

实现 Laravel 即时应用需要配合 Laravel 广播事件系统来实现:https://laravel.com/docs/5.6/…

首先需要恢复注释的掉广播服务提供者, 在文件 ==config/app.php== 中

Illuminate\Broadcasting\BroadcastServiceProvider::class

然后在.env 文件中配置广播系统的选项

BROADCAST_DRIVER=redis

#这里为了演示方便, 可以按实际情况配置
QUEUE_DRIVER=sync

然后需要按照 redis 包, 上面的 广播系统需要应用到这个。

composer require predis/predis

Redis 的配置在 ==config/database.php== 中

'redis'       => [

        'client'  => 'predis',

        'default' => ['host'     => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port'     => env('REDIS_PORT', 6379),
            'database' => 0,
        ],

        'cache'   => [
            'host'     => 'redis_cache_server_01',
            'password' => null,
            'port'     => 6379,
            'database' => 1,
        ],

    ],

(二、)Laravel-echo-server 安装

首先我们需要通过 npm 全局安装 laravel-
echo-server

npm install -g laravel-echo-server

然后开始对 laravrl-echo-server 进行初始化

laravel-echo-server init

下面会需要输入一些配置, 你可以参照我下面这张截图来进行设置.

PS: 在实际生产环境中, 切记关闭开发模式

下面我们将 laravel-echo-server 运行起来.

laravel-echo-server start

正常的输出将会是这个样子 (如图), 如有问题请详细检查你的配置.

做好以上准备后, 就开始实战进行消息推送与监听.

正文完
 0