Cześć, mógłby ktoś wyjaśnić mi mechanizm działania websockets w Laravel & Vue.js?
Chciałem napisać prostą aplikację real time - chat. W lara dodałem event ChatMessagesEvent a w nim
public $message;
public function __construct(Message $message)
{
$this->message = $message;
}
public function broadcastOn()
{
return new PresenceChannel('chat_messages');
}
podczas wysyłania wiadomości
public function store(array $data)
{
$this->chatConversationRepository->findConversation($data['conversation_id']);
$data['sender_id'] = Auth::id();
$item = Message::create($data);
if (empty($item))
throw new Exception(trans('exceptions.no_created'));
if (!empty($data['files'])) {
$this->uploadFileToConversation($item, $data);
}
broadcast(new ChatMessagesEvent($item));
return $item;
}
po utworzeniu rekordu wywołuje się event i przekazuję do niego utworzony obiekt
po stronie klienta standardowo wysyłam i wyświetlam wiadomości ale dodaję jeszcze coś takiego w created()
```
Echo.join('chat_messages')
.listen('ChatMessagesEvent', (event) => {
this.messages.push(event.message)
})
```
jak dobrze rozumiem ma to nasłuchiwać wywołany event i dodawać wiadomość do listy jednak nic się nie dzieje, wydaje mi się że chodzi o złą konfigurację. Komunikuję się poprzez API
backend: http://localhost:8000/api/
front: http://localhost:8080/
ktoś, coś, jakieś uwagi co może być nie tak?