如何在Laravel-Echo中处理服务器端的耳语?

时间:2019-04-12 10:46:39

标签: laravel laravel-echo

我正在建立实时聊天系统。

这是前端代码。

加载

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 个答案:

答案 0 :(得分:1)

由于whisper事件只是客户端到客户端功能,因此目前无法使用 Laravel后端检索事件

请参阅: laravel.com/docs/broadcasting#client-events