2016-06-16 5 views
1

私は自分のプロジェクトにプッシャーを使いました。私はlaravelドキュメントごとに放送を設定します。私は私のイベントプッシャーが私のために働いていない私の解雇。しかし、プッシャーコンソールからデータを送信すると、プッシャーはこのデータを受信します。 私はまたvinkla /プッシャーを試してみます。その仕事はうまくいくが、ララベルのイベント放送はうまくいかない。 私を助けてください。ここでLaravelイベントブロードキャストはプッシャーでは機能しません

は、私は同様の問題が発生し、段階的に行って、問題を修正私のTestEvent.phpコード

namespace Factum\Events; 

use Factum\Events\Event; 
use Illuminate\Queue\SerializesModels; 
use Illuminate\Contracts\Broadcasting\ShouldBroadcast; 

class TestEvent implements ShouldBroadcast 
{ 
    use SerializesModels; 

    public $text; 

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

    /** 
    * Get the channels the event should be broadcast on. 
    * 
    * @return array 
    */ 
    public function broadcastOn() 
    { 
     return ['test-channel']; 
    } 
} 

答えて

2

です。 Laravel 5.3を実行しているとします。設定の\ broadcasting.php中:configファイルチェック)

1:ここでは は役に立つかもしれませんその中を歩くステップバイステップで

'connections' => [ 

    pusher' => [ 
    'driver' => 'pusher', 
    'key' => env('PUSHER_KEY'), 
    'secret' => env('PUSHER_SECRET'), 
    'app_id' => env('PUSHER_ID'), 
    'options' => [ 
         'cluster' => 'eu', 
         'encrypted' => true, 
         // 'host' => 'api-eu.pusher.com' 
         // 'debug' => true, 
        ], 
    ], 

2)あなたの「ウェブでテスト用ルートを作成します。あなたは、イベント名を指定するために、このメソッドを追加する必要がありますTestEvent.php 『イベントファイル」あなたにはファイル

Route::get('/broadcast', function() { 

     event(new \Factum\Events\TestEvent('Sent from my Laravel application')); 

     return ok; 
}); 

3)』の.php:

/** 
* The event's broadcast name. 
* 
* @return string 
*/ 
public function broadcastAs() 
{ 
    return 'my_event'; 
} 

4)Pusher dashboardを開き、デバッグコンソールに進みます。 アプリケーションからのリクエストが成功したかどうか確認できるように、ページを開いたままにしておきます。

5)キューワーカーを開始または再起動します。このステップはすべてを行い、すべてを制動します。キューにMysqlテーブルを使用している場合は、キューに必要な "jobs"データベーステーブルと "failed_jobs"データベーステーブルをすでに設定していると仮定します。 もう一つの重要な要素は、作業者、つまりキュープロセッサです。 キューを処理するためにアクティブなワーカーが実行されていない場合、ジョブ(TestEvent)はジョブテーブルに "残り"ます。つまり、ジョブが保留中であり、アクティブなワーカーがキューを処理するまで何も起こりません。

あなたは、このような労働者を開始することができます:今、あなたは順番に呼び出し作るにすべてのものを持っていることを

[email protected]# php artisan queue:work --tries=3 

6):「http://your-app.laravel/broadcastを」と応答のためのあなたのプッシャーデバッグコンソールを確認してください。

オプションの手順: 何かがまだ不足している場合は、そのようにプッシャーとアプリの対話をデバッグすることができます:あなたのテスト路線で は、このやってみてください:

Route::get('/broadcast', function() { 

    /* New Pusher instance with our config data */ 
    $pusher = new \Pusher(config('broadcasting.connections.pusher.key'), config('broadcasting.connections.pusher.secret'), config('broadcasting.connections.pusher.app_id'), config('broadcasting.connections.pusher.options')); 

    /* Enable pusher logging - I used an anonymous class and the Monolog */ 
    $pusher->set_logger(new class { 
        public function log($msg) 
        { 
         \Log::info($msg); 
        } 
       }); 

    /* Your data that you would like to send to Pusher */ 
    $data = ['text' => 'hello world from Laravel 5.3']; 

    /* Sending the data to channel: "test_channel" with "my_event" event */ 
    $pusher->trigger('test_channel', 'my_event', $data); 

    return 'ok'; 

}); 

を、私はそれがあまりにもあなたのために働くことを願っています! コーディングを楽しくしてください! ;)

関連する問題