2016-11-25 16 views
2

プッシュでLaravel 5.3を使用しようとしましたが、コード内で正しく機能していないようです。PusherとLaravel 5.3イベントブロードキャスト

マイ.envは、これは私がイベントを作成しbroadcasting.php

'pusher' => [ 
     'driver' => 'pusher', 
     'key' => env('PUSHER_KEY'), 
     'secret' => env('PUSHER_SECRET'), 
     'app_id' => env('PUSHER_APP_ID'), 
     'options' => [ 
      'cluster' => 'eu', 
      'encrypted' => true, 
     ], 
    ], 

での私の 'プッシャー' の設定で、正しい

PUSHER_APP_ID= myappid 
PUSHER_KEY= mykey 
PUSHER_SECRET= mysecret 

あり、ここではそれは

<?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 ProposalEvent implements ShouldBroadcast 
{ 
    use InteractsWithSockets, SerializesModels; 

    public $data; 

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

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

私ですjavascript

Pusher.logToConsole = true; 

var pusher = new Pusher("mykey", { 
    cluster: 'eu', 
    encrypted: true 
}); 
var channel = pusher.subscribe('test-channel'); 
channel.bind('App\\Events\\ProposalEvent', function(data) { 
    alert(data); 
}); 

、最終的に私の見解では

event(new App\Events\ProposalEvent('some data')); 

が、残念ながらこれは私のために働いていない、しかし、私はこのようなpusher->トリガを使用する場合、イベントなしで、それがうまく働いて、と私はプッシャーデバッグコンソール

にメッセージが表示さ
$options = array(
    'cluster' => 'eu', 
    'encrypted' => true 
); 
$pusher = new Pusher(
    'mykey', 
    'mysecret', 
    'myid', 
    $options 
); 

$data['message'] = 'some data'; 
$pusher->trigger('test-channel', 'my-event', $data); 

私はLaravelのドキュメントと他のリソースの中で解決策を探しました。私は数日間解決策を見つけることができないので、誰かが私を助けることができれば感謝します。

答えて

0

config/broadcastでプッシャー認証情報を直接渡すようにしてください。 ph

それは私のために働いた。

1

私は同じ状況で立ち往生していましたが、キューを使用していないことがわかりました。ドキュメントで

それは、イベントを放送する前に

を言う、あなたはまた、キューリスナーを設定して実行する必要があります。すべてのイベントブロードキャストは、アプリケーションの応答時間に重大な影響を与えないように、キューに入れられたジョブを介して行われます。

私はそれを使用していないと思ったので、config/queue.phpファイルを削除しました。たぶんあなたは私と同じことをしているか、キューに問題があるかもしれません。