Laravel эхо не слушает

Я из Венесуэлы, у меня проблема с попыткой интегрировать Laravel Echo в проект, я пробую все, и я хочу получить вашу помощь.

возможно я не работаю с правильным путем.

Я пытаюсь использовать трансляцию событий с помощью сокета io, потому что я работаю в стартапе, и мне очень трудно оплачивать такие услуги, как pusher.

я пытаюсь сделать простой чат в реальном времени ..

Это мой чат-контроллер ..

public function index(Request $request){

$sender=Auth::user()->id;
$receiver=\App\User::find(2);
$message=new Message;
$message->message="Hola, esto es una prueba de eventos";
$message->user_receiver_id=$receiver->id;
$message->user_sender_id=Auth::user()->id;
$message->id_chat=1;
$message->save();

event(new \App\Events\sendMessage($message,$receiver));

return response()->json(["status"=>"ok"]);
}

Этот чат хранит в базе данных сообщения в соответствии с определенной группой (чат).

Событие, которое будет запущено:

класс sendMessage реализует ShouldBroadcast
{
использовать Dispatchable, InteractsWithSockets, SerializesModels;

/**
* Create a new event instance.
*
* @return void
*/

public $message;
public $user_receiver;

public function __construct(Message $message,User $user_receiver)
{
$this->message=$message;
$this->user_receiver=$user_receiver;

}

public function broadcastOn()
{
\Log::info($this->message->id_chat);

return new PrivateChannel('chat.1');}}

Мой app.js:

require('./bootstrap');
import Echo from "laravel-echo";

window.Echo = new Echo({
broadcaster: 'socket.io',
host: window.location.hostname + ':6001'
});window.Echo.channel('chat.1')
.listen('sendMessage', e => {
console.log(e);
});

вначале я просто хочу получить публичные переменные из моего события sendMessages, после этого я хочу построить представление.

Я запускаю слушателя php artisan и запускаю de laravel echo server.

когда я отправляю сообщение, это происходит с эхо-сервером laravel и слушателем:

Вывод эхо-сервера Laravel

введите описание изображения здесь

Я думаю, что процесс работает нормально, но я думаю, что у меня проблема только с клиентом ..

потому что ничего не происходит в клиенте, когда я отправляю сообщение.

Извините за мой английский, я надеюсь, что вы можете мне помочь.

1

Решение

Эту проблему очень трудно устранить без полного исходного кода и запуска приложения.

Я реализовал все 3 типа каналов (частные, публичные & присутствие) в этом приложении чата, может быть, вы можете получить некоторые идеи из него:

https://github.com/xparthx/laravel-realtime-chat

Спасибо

0

Другие решения

Вы должны использовать только use SerializesModels;

Также, broadcast(new \App\Events\sendMessage($message,$receiver));

Вы можете найти пример вещания Laravel 5 здесь,

https://github.com/durmus-aydogdu/real-time-application

0

По вопросам рекламы [email protected]