国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

如何使用laravel-echo-server 搭建一個事件廣播平臺

2020-03-22 19:04:04
字體:
來源:轉載
供稿:網友
這篇文章給大家介紹的文章內容是關于使用laravel-echo-server 搭建事件廣播平臺,有很好的參考價值,希望可以幫助到有需要的朋友。

此文記錄一下之前項目中遇到的laravel后臺廣播消息到vue前臺的實現過程。Laravel 并未內置一個 Socket.IO 服務器實現,不過,這里有一個第三方實現的 Socket.IO 驅動:laravel-echo-server,相當于一個中間件;技術要點:laravel + laravel-echo-server + vue/laravel-echo

整體架構

644316005-5b592b01b251d_articlex.png

1. laravel-echo-server

詳細介紹參見:https://github.com/tlaverdure...

1.1 laravel-echo-server服務器直接搭建在laravel項目中:

① 全局安裝laravel-echo-server: npm install laravel-echo-server -g;
控制臺進入laravel項目,運行命令:laravel-echo-server init

860265255-5b58820ca270c_articlex.png
在laravel項目中會多出一個laravel-echo-server.json文件,里面包含了所有的配置信息;
③ 通過運行laravel-echo-server start 命令行啟動服務

1.2 laravel-echo-server服務器獨立部署

我們發現,其實只要有一個laravel-echo-server.json文件就能啟動服務,那么顯然可以將服務獨立出laravel項目進行部署(覺得沒必要可以不用這么折騰)。
使用Http的方式推送消息至laravel-echo-server服務器,格式如下:

POST http://app.dev:6001/apps/your-appId/events?auth_key=you-key 

用postman測試:

1041162410-5b5889a2d6824_articlex.png

測試成功,laravel-echo-server服務器搭建成功

2. laravel后臺

定義BroadcastHttpPush.php作為接口

 ?phpnamespace App/HelpTrait;use GuzzleHttp/Client;trait BroadcastHttpPush html' target='_blank'>public function push($data) $baseUrl = env( WEBSOCKET_BASEURL , http://localhost:6001/  $appId = env( WEBSOCKET_APPID , 3ccfbd93b5e2906a  $key = env( WEBSOCKET_KEY , 6509c546c053d59057a61e46ae9a7898  $httpUrl = $baseUrl . apps/ . $appId . /events?auth_key= . $key; $client = new Client([ base_uri = $httpUrl, timeout = 2.0, $response = $client- post($httpUrl, [ json = $data $code = $response- getStatusCode();}

使用:

 ?phpnamespace App/Controllers;use App/HelpTrait/BroadcastHttpPush;class SendMessage use BroadcastHttpPush; public function index() $broadcastChannel = array( channel = private-Message , // 通道名,`private-`表示私有 name = sayHello , // 事件名 data = array( status = 200,  message = hello world!  $this- push($broadcastChannel);}
3. vue前端

定義UserActionNotification.vue

 template  /template  script import Echo from laravel-echo import io from socket.io-client export default { mounted() { window.io = io window.Echo = new Echo({ broadcaster: socket.io , host: http://localhost:6001 , window.Echo.private( Message ).listen( .sayHello , (res) = { if (res.status === 200) { console.log(res.message) } else { console.log( something wrong! ) /script  style lang= sass scoped 

注:事件sayHello前面要加., 不然需要帶上事件的域名空間;

相關推薦:

Laravel如何操作數據庫?Laravel數據庫操作的三種方式(代碼)

Laravel 5.5如何創建響應?創建響應的介紹(代碼)

以上就是如何使用laravel-echo-server 搭建一個事件廣播平臺的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 城步| 洛浦县| 永春县| 定日县| 历史| 海盐县| 柳河县| 烟台市| 永修县| 深州市| 乐山市| 阿城市| 江永县| 大洼县| 玉门市| 漳州市| 兰考县| 左贡县| 朝阳区| 林口县| 广宗县| 铁岭市| 澳门| 芜湖县| 安宁市| 巴南区| 仁寿县| 江陵县| 玉树县| 榕江县| 中方县| 北碚区| 祁连县| 宜昌市| 揭东县| 阜城县| 名山县| 晋江市| 固原市| 枣庄市| 勃利县|