Как справиться с шепотом на стороне сервера в laravel-echo? - PullRequest
0 голосов
/ 12 апреля 2019

Я создаю систему чата в реальном времени.

это код переднего конца.

OnLoad

Echo.join(`chat.${id}`)
    .here(users => {})
    .listenForWhisper('sent', (e) => {});

отправлено

Echo.join(`chat.${id}`)
    .whisper('sent', {
        message : message,
        sender : sender,
    });

Что я хочу сделать, так это обработать событие «послано» шепотом в laravel следующим образом

$message; // I want to get from whisper
$sender; // I want to get from whisper
Chat::create([
   "message" => $message,
   "sender" =>  $sender,
]);

Но я не знаю, как это реализовать. Итак, я до сих пор так кодирую.

Отправлено

Echo.join(`chat.${id}`)
    .whisper('sent', {
       "message" : message,
       "sender" : sender,
    });

axios.post('/message_sent', {
   message : message,
   sender : sender,
});

api.php

Route::post('/message_sent', function(Request $request) {
  Chat::create([
      "message" => $request['message'],
      "sender" => $request['sender'],
  ]);
});

в этом случае сообщение (от клиента к серверу) отправляется по протоколу HTTP, а не по протоколу TCP / IP.

Кто-нибудь знает, как получить значение шепота на стороне сервера ??

1 Ответ

1 голос
/ 17 апреля 2019

Поскольку событие whisper является только клиент-клиентской функцией , в данный момент невозможно получить событие с помощью Laravel Back-End .

См .: laravel.com / docs / broadcasting # client-events

...