0

このチュートリアルを行っていますLaravel Echo の紹介。放送物は完璧に機能しています。コマンドを実行するたびにphp artisan chat:message "something"。イベントがトリガーされ、データベースにデータが保存されます。しかし、Laravel Echoに移りましょう。私はたくさん試しましたが、どこにも行きません。私はエコーを入れまし/js/app.jsたが、ドキュメントにはそれが記載されてい/js/bootstrap.jsます。私はチュートリアルに従っているので、/js/app.jsEcho 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つ。プッシャーは正しく送信できます。

4

1 に答える 1