打造你的Laravel即時應用(一)-項目初始化構建

打造你的Laravel即時應用(一)-項目初始化構建

關於即時應用

在現代Web應用開發中,即時交互場景愈來愈多,好比場景的就有:即時聊天,即時通知,第三方登陸,掃碼登陸等功能,都須要接入即時場景來完善。php

在過去,爲了實現這種即時通信,能讓客戶端正確響應處理結果,最爲經常使用的技術就是輪詢,由於 HTTP 協議的單向性,客戶端只能一遍一遍的主動詢問服務端的處理結果。這種方式有顯見的缺陷,佔用服務端資源不說,還不能實時得到服務端處理結果。laravel

如今,咱們可使用 WebSocket 協議來處理實時交互,它是一種雙向協議,容許服務端主動推送信息到客戶端。redis

本篇我將使用Laravel來進行構建一個即時的通知應用,須要運用到如下知識:npm

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

(一)、廣播系統配置

實現Laravel即時應用須要配合Laravel廣播事件系統來實現:https://laravel.com/docs/5.6/...app

首先須要恢復註釋的掉廣播服務提供者,在文件==config/app.php==中composer

Illuminate\Broadcasting\BroadcastServiceProvider::class

而後在.env文件中配置廣播系統的選項ide

BROADCAST_DRIVER=redis

#這裏爲了演示方便,能夠按實際狀況配置
QUEUE_DRIVER=sync

而後須要按照redis包,上面的 廣播系統須要應用到這個。ui

composer require predis/predis

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

'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,
        ],

    ],

(2、)Laravel-echo-server安裝

首先咱們須要經過npm全局安裝laravel-
echo-servercode

npm install -g laravel-echo-server

而後開始對laravrl-echo-server進行初始化

laravel-echo-server init

下面會須要輸入一些配置,你能夠參照我下面這張截圖來進行設置.

image

PS:在實際生產環境中,切記關閉開發模式

下面咱們將laravel-echo-server運行起來.

laravel-echo-server start

正常的輸出將會是這個樣子(如圖),若有問題請詳細檢查你的配置.
image

作好以上準備後,就開始實戰進行消息推送與監聽.

相關文章
相關標籤/搜索