このチュートリアルを行っていますLaravel Echo の紹介。放送物は完璧に機能しています。コマンドを実行するたびにphp artisan chat:message "something"
。イベントがトリガーされ、データベースにデータが保存されます。しかし、Laravel Echoに移りましょう。私はたくさん試しましたが、どこにも行きません。私はエコーを入れまし/js/app.js
たが、ドキュメントにはそれが記載されてい/js/bootstrap.js
ます。私はチュートリアルに従っているので、/js/app.js
Echo is not shown data in log に入れました。を使用してubuntu
います。
テスト イベント:
class TestEvent implements ShouldBroadcast
{
use InteractsWithSockets, SerializesModels;
public $message;
public $user;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($user, $message)
{
//
$this->user = $user;
$this->message = $message;
}
/**
* Get the channels the event should broadcast on.
*
* @return Channel|array
*/
public function broadcastOn()
{
return "chat-room";
}
}
チャットコマンドコードを送信:
class SendChatMessage extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'chat:message {message}';
protected $description = 'Send chat message.';
public function handle()
{
// Fire off an event, just randomly grabbing the first user for now
$user = \App\User::first();
$message = \App\Message::create([
'user_id' => $user->id,
'content' => $this->argument('message')
]);
event(new \App\Events\TestEvent($message, $user));
}
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
}
ララベルエコー:
import Echo from "laravel-echo"
window.Echo = new Echo({
broadcaster: 'pusher',
key: 'my-key'
});
window.Echo.channel('chat-room')
.listen('TestEvent', (e) => {
console.log(e.user, e.message);
});
プッシャーからイベントを送信するたびにもう1つ。プッシャーは正しく送信できます。