顯示具有 laravel 標籤的文章。 顯示所有文章
顯示具有 laravel 標籤的文章。 顯示所有文章

2015年8月7日 星期五

Laravel 5.1 廣播事件 - 利用 redis & socket.io (事件實作)

主要參考 Step by Step Guide to Installing Socket.io and Broadcasting Events with Laravel 5.1 此篇教學,因此寫下步驟提醒自己,若要詳細的圖文配置請自行參閱。

Step1. 安裝新的 npm pakage & 更新 composer.json
  • npm install express ioredis socket.io --save
  • composer require predis/predis
Step2. 創建廣播事件
  • php artisan make:event EventName
注意得去實作 ShouldBroadcast 介面,且注意又用 public 的方法去實作序列化&送資料。

Step3. 創建 View & Route

注意在client頁面 socket.io.js 的引入,若沒有可以去抓下來放 assets/js 或者直接用 cdn。

Step4. 建立 node Server 端 socket.js

redis 必須去 subsrcibe 與 EventName.php 相同的 channel。
修改 .env 的 BROADCAST_DRIVER,因為原本是用 pusher。

Step5. 啟動 node server&redis-server
  • node socket.js
  • redis-server --port 3001
另外也有一篇很棒的參考,而且是中文(Laravel 5.1 Events Broadcasting 實務練習

Laravel 5.1 廣播事件 - 利用 redis & socket.io (環境設置)

筆記


最近因為專案需要學習了 Laravel,也因專案性質的緣故,因此可能會運用到如 socket.io 這一類在 node.js 上的功能,因此廣泛的 search 一下,發現原來在 Laravel 5.1 版釋出時,他的某一項新特色就包含了 Broadcasting, 而 Laravel 的重要元老Taylor Otwell也發表了相關的教學影片,同時在 L5.1穩定版釋出後在 Laracast 上釋出了一篇使用 Redis 替代原本 Pusher 的做法,非常吸引我因此做下此篇筆記。


前置動作


Laravel Homestead + vagrant 是學習 Laravel 的最佳利器,因此我選擇在此環境下建置,網路上也有許多方法(Getting Started with Laravel Homestead)透過 virtualbox 進行安裝。

Step 1.測試環境

安裝完畢後,在 Homestead 目錄使用 vargrant ssh 進入虛擬機,檢查分別檢查:
  • npm -v  => 會回傳版本後
  • redis-cli ping => 會回傳 pong
此時會對 homestead 好感度大大的提升(除了有讓環境跟其他的開發者一樣的優點,同時也解決了許多套件安裝的麻煩)!

Step 2. 創建新專案&站台

創建新的 laravel 專案,在本機端的對應 folder 利用指令創建專案
  • composer create-project laravel/laravel your-project-name
修改 /etc/hosts,並加入以下
  • 192.168.10.10 your-project-name.app
進入 homestead 虛擬機 serve 新站台
  • serve your-project-name.app /home/vagrant/Code/path/to/public/directory 80
最後可以測試一下 your-project-name.app ,如果在瀏覽器出現歡迎頁面就成功了!