namespace App\Providers; class EventServiceProvider extends ServiceProvider { protected $listen = [ 'App\Events\UserHasRegistered' => [ //修改event 'App\Listeners\Email@welcome', //修改listener,Email是類名,welcome是函數名 ], ];
E:\wamp\www\laravel>php artisan event:generate
Route::get('broadcast', function () { event(new App\Events\UserHasRegistered('Jeffrey Way'));
return 'done'; });
namespace App\Events; class UserHasRegistered extends Event { use SerializesModels; public $name; public function __construct($name) { $this->name = $name; }
namespace App\Listeners; class Email { public function __construct() { // } public function handle(UserHasRegistered $event) { var_dump('The user '.$event->name . ' has registered. Fire off an email.'); //能夠調用到name參數 }
E:\wamp\www\laravel>composer require pusher/pusher-php-server ~2.0
namespace App\Events; use Illuminate\Contracts\Broadcasting\ShouldBroadcast; class UserHasRegistered extends Event implements ShouldBroadcast { use SerializesModels; public $name;
Route::get('/', function () { return view('welcome'); //以welcome接受 });
</body> <script src="https://js.pusher.com/2.2/pusher.min.js"></script> <script> var pusher = new Pusher('9cb1b968c4aeeefb7f81', { encrypted: true }); var channel = pusher.subscribe('myChannel'); //對應到event的broadcastOn的返回值 channel.bind('App\\Events\\UserHasRegistered', function(data) { //綁定 console.log(data); }); </script> </html>
Route::get('broadcast', function () { $name = Request::input('name'); event(new App\Events\UserHasRegistered($name)); return 'done'; });
訪問broadcast?name=somename,而後就能夠看見/頁面在不刷新的狀況下獲得信息了php