2016-11-02 16 views
6

mam imprezę SomeEvent.phplaravel echo z REDiS i gniazda IO

tak:

<?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 SomeEvent implements ShouldBroadcast 
{ 


    use InteractsWithSockets, SerializesModels; 

    public $data; 
    /** 
    * Create a new event instance. 
    * 
    * @return void 
    */ 
    public function __construct($array) 
    { 
     $this->data = $array; 
    } 

    /** 
    * Get the channels the event should broadcast on. 
    * 
    * @return Channel|array 
    */ 
    public function broadcastOn() 
    { 
     return new PrivateChannel('channel-name'); 
    } 
} 

mam włączone następujące w moich bootstrap.js i skompilowane go łykiem

import Echo from "laravel-echo" 

window.Echo = new Echo({ 
    broadcaster: 'socket.io', 
    host: 'http://site.dev:6001' 

}); 

window.Echo.private('channel-name') 
    .listen('SomeEvent', (e) => { 
     console.log(e); 
}); 

to mam zainstalowane tlaverdure/laravel-echo-serwer i tu jest moje laravel-echo-server.json

{ 
    "appKey": "[generated]", 
    "authHost": "http://site.dev", 
    "authEndpoint": "/broadcasting/auth", 
    "database": "redis", 
    "databaseConfig": { 
     "redis": {}, 
     "sqlite": { 
      "databasePath": "/database/laravel-echo-server.sqlite" 
     } 
    }, 
    "devMode": false, 
    "host": "sitei.dev", 
    "port": "6001", 
    "referrers": [], 
    "socketio": {}, 
    "sslCertPath": "", 
    "sslKeyPath": "" 
} 

teraz kiedy odpalić laravel echo serwer z laravel-echo-serwer rozpocząć zaczyna się bardzo dobrze jednak kiedy odpalić powyższy wydarzenie jak tak

event(new SomeEvent(json_encode(['name' => 'some-name']))); 

widzę imprezę opublikowaną do Redis jednak nic jest loged do mojej konsoli klienta: jestem w tym także gniazdo IO w moim master.blade.php

wyżej też się dzieje z powiadomieniami

Każda pomoc będzie bardzo mile widziane. Dzięki chłopaki

+0

Czy jesteś w stanie rozwiązać ten problem? Miałem podobny problem: http://stackoverflow.com/questions/41120789/broadcasting-event-with-socket-io-and-redis-in-laravel-5-3?noredirect=1#comment69445395_41120789 jakikolwiek pomysł? –

+0

Występuje literówka w twoim ustawieniu hosta, nie? "sitei.dev" vs "site.dev". Czy to możliwe? Jeśli nie, czy na pewno działa proces roboczy redis? – Trip

Odpowiedz

1

Czy zdefiniowałeś regułę autoryzacji dla swojego kanału w BroadcastServiceProvider?

Czy widzisz jakieś informacje o łączeniu się i opuszczaniu kanału, jeśli umieścisz devMode w laravel-echo-server.json?

Miałem wiele problemów podczas próby skonfigurowania połączenia z internetem, ale w końcu udało mi się to ustalić, a mój kod wygląda podobnie jak twój.

Powodzenia!

+0

Dzięki już rozwiązany – user2293554

Powiązane problemy