laravel echo не получает трансляцию

Я пытаюсь получить широковещательное событие через Laravel Echo, используя Vue 2 и laravel-echo-server, но это просто не сработает. Я также перевел laravel-echo-server в режим разработки и вижу, что я вхожу в канал, но одновременно ухожу? Если это проблема, как мне предотвратить это и остаться в канале? Я также вижу, что трансляция запускается, потому что я запускаю php artisan queue:work redis, и каждый раз, когда я отправляю запрос на событие, я получаю Processed: Illuminate\Broadcasting\BroadcastEvent, так что я знаю, что это тоже работает. Почему это не сработает? Я буквально схожу с ума.

Вот мой bootstrap.js:

window._ = require('lodash');

window.$ = window.jQuery = require('jquery');
require('bootstrap-sass');

window.Vue = require('vue');
require('vue-resource');

Vue.http.interceptors.push((request, next) => {
    request.headers.set('X-CSRF-TOKEN', Laravel.csrfToken);

    next();
});

import Echo from "laravel-echo"

window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: 'http://test.dev:6001'
});

мой app.js:

require('./bootstrap');

Vue.component('alert', require('./components/Alert.vue'));

const app = new Vue({
    el: '#app',
    data: {
        users: []
    },
    created: function () {
        window.Echo.channel('test-channel')
            .listen('UserSignedUp', (e) => {
                console.log(e);
                console.log('test');
            });
    }
});

Мое мероприятие:

<?php

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class UserSignedUp implements ShouldBroadcast
{
    use InteractsWithSockets, SerializesModels;

    public $username;

    public function __construct($username)
    {
        $this->username = $username;
    }

    public function broadcastOn()
    {
        return new Channel('test-channel');
    }
}

и, наконец, мой laravel-echo-server.json:

{
    "appKey": "somekey",
    "authHost": "http://test.dev",
    "authEndpoint": "/broadcasting/auth",
    "database": "redis",
    "databaseConfig": {
        "redis": {
            "port": "6379",
            "host": "localhost"
        },
        "sqlite": {
            "databasePath": "/database/laravel-echo-server.sqlite"
        }
    },
    "devMode": true,
    "host": "localhost",
    "port": "6001",
    "referrers": [],
    "socketio": {},
    "sslCertPath": "",
    "sslKeyPath": ""
}

Я нигде не получаю никаких ошибок, и похоже, что мое событие запускается и обрабатывается, но Echo просто не получает событие. Как упоминалось ранее, каждый раз, когда событие запускается, я получаю это из консоли (вкладка терминала laravel-echo-server):

[TIME] - KEY joined channel: test-channel
[TIME] - KEY left channel: test-channel

person A. Appleby    schedule 27.11.2016    source источник


Ответы (1)


Да, по какой-то причине мой BROADCAST_DRIVER в моем файле .env был установлен на log. Умный я (у)

person A. Appleby    schedule 27.11.2016