打造你的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
正常的输出将会是这个样子(如图),如有问题请详细检查你的配置.
做好以上准备后,就开始实战进行消息推送与监听.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。