>백엔드 개발 >PHP 튜토리얼 >laravel-echo-server를 사용하여 이벤트 방송 플랫폼을 구축하는 방법

laravel-echo-server를 사용하여 이벤트 방송 플랫폼을 구축하는 방법

不言
不言원래의
2018-07-27 10:50:014552검색

이 글은 laravel-echo-server를 사용하여 이벤트 방송 플랫폼을 구축하는 방법에 대한 글을 소개하는 글입니다. 참고할만한 가치가 있고 도움이 필요한 친구들에게 도움이 되었으면 좋겠습니다.

이 글은 이전 프로젝트에서 접했던 vue 프론트엔드에 대한 laravel 백그라운드 브로드캐스팅 메시지의 구현 과정을 기록합니다. Laravel에는 내장된 Socket.IO 서버 구현이 없지만 타사에서 구현한 Socket.IO 드라이버가 있습니다: laravel-echo-server는 미들웨어와 동일합니다: laravel + laravel-echo-server; + vue/ laravel-echo

전체 아키텍처

laravel-echo-server를 사용하여 이벤트 방송 플랫폼을 구축하는 방법

1.laravel-echo-server

자세한 소개는 https://github.com/tlaverdure...

1.1을 참조하세요. >laravel-echo-server 서버는 laravel 프로젝트에서 직접 구축됩니다:

laravel-echo-server服务器直接搭建在laravel项目中:

① 全局安装laravel-echo-server: npm install laravel-echo-server -g;
② 控制台进入laravel项目,运行命令:laravel-echo-server init

laravel-echo-server를 사용하여 이벤트 방송 플랫폼을 구축하는 방법
在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测试:

laravel-echo-server를 사용하여 이벤트 방송 플랫폼을 구축하는 방법

测试成功,laravel-echo-server服务器搭建成功

2. laravel后台

定义BroadcastHttpPush.php作为接口

<?php namespace App\HelpTrait;

use GuzzleHttp\Client;

trait BroadcastHttpPush
{
    public function push($data)
    {
        $baseUrl = env(&#39;WEBSOCKET_BASEURL&#39;, &#39;http://localhost:6001/&#39;);
        $appId = env(&#39;WEBSOCKET_APPID&#39;, &#39;3ccfbd93b5e2906a&#39;);
        $key = env(&#39;WEBSOCKET_KEY&#39;, &#39;6509c546c053d59057a61e46ae9a7898&#39;);
        $httpUrl = $baseUrl . &#39;apps/&#39; . $appId . &#39;/events?auth_key=&#39; . $key;
      
        $client = new Client([
            &#39;base_uri&#39; => $httpUrl,
            'timeout' => 2.0,
        ]);
        $response = $client->post($httpUrl, [
            'json' => $data
        ]);
        $code = $response->getStatusCode();
    }
}

使用:

<?php namespace 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>
  <p>
    
  </p>
</template>

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

<style></style>

注:事件sayHello前面要加.① laravel-echo-server를 전역적으로 설치: npm install laravel-echo-server -g ;
② 콘솔 laravel 프로젝트를 입력하고 laravel-echo-server init


laravel-echo-server를 사용하여 이벤트 방송 플랫폼을 구축하는 방법
laravel이 하나 더 있습니다 -echo-server.json 모든 구성 정보가 포함된 laravel 프로젝트 파일
3 laravel-echo-server start 명령줄을 실행하여 서비스를 시작하세요

1.2 laravel-echo-server서버 독립적 배포실제로 laravel-echo-server.json 파일이 있는 한, 서비스가 시작될 수 있으므로 분명히 서비스는 laravel 프로젝트와 독립적으로 배포될 수 있습니다. (필요하지 않다고 생각하면 귀찮게 하지 마세요.)
Http를 사용하여 laravel-echo-server 서버에 메시지를 푸시합니다. 형식은 다음과 같습니다:
rrreee

postman으로 테스트: 🎜🎜laravel-echo-server를 사용하여 이벤트 방송 플랫폼을 구축하는 방법🎜🎜🎜🎜테스트 성공, 라라 벨 -echo-server 서버가 성공적으로 구축되었습니다🎜🎜2.laravel backend🎜🎜BroadcastHttpPush.php를 인터페이스로 정의🎜rrreee🎜사용: 🎜rrreee🎜3. 🎜UserActionNotification.vue🎜rrreee🎜<code>정의: 이벤트 sayHello 앞에는 .가 와야 합니다. 그렇지 않으면 다음을 수행해야 합니다. 이벤트의 도메인 이름 공간을 가져오세요. 🎜🎜관련 권장 사항: 🎜🎜🎜라라벨은 데이터베이스를 어떻게 운영하나요? Laravel 데이터베이스 작업의 세 가지 방법(코드) 🎜🎜🎜🎜Laravel 5.5에서 응답을 만드는 방법은 무엇입니까? 응답 생성 소개(코드) 🎜🎜

위 내용은 laravel-echo-server를 사용하여 이벤트 방송 플랫폼을 구축하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.