回显加入不会从广播状态通道接收数据



我对 laravel 的回声和推送器非常基本,尽管有文档和教程,我还是遇到了一个问题。我正在尝试在YouTube视频之后在我的网站上创建一个实时聊天消息功能。我的控制器、型号、通道和应用的代码摘录.js分别如下:

public function send(Request $request)
{
    $user = Auth::user();
    $id = Auth::user()->id;
    $message = $user->messages()->create([
        'user_id' => $id,
        'messages' => $request->get('messages')
    ]);
    broadcast(new MessagePosted($message, $user));
    return ['status' => 'Message Sent!'];
}

型:

 public function broadcastOn()
    {
//        return ['chatit'];
          return new PresenceChannel('chatit');
    }

渠道:

Broadcast::channel('chatit', function ($user) {
    return true;
});

.app:

window.Echo.join('chatit')
            .listen('MessagePosted', (e) => {
        console.log(e)
    });

我现在的问题是,如果我在我的模型中返回chatit(我已经评论过(,并将加入更改为频道,我可以看到控制台.log的结果,但是当我改用状态频道并使用加入应用程序.js时,我只会得到消息发送状态。任何帮助将不胜感激。

我不知道

为什么,但经过几个小时的沮丧,我重新启动了我的电脑,它才开始工作。

我还发现终止并重新运行 php 工匠服务进程也可以解决问题

就我而言,我的事件MessagePosted位于Events目录中的子目录Chat上,为了能够记录事件数据,您必须指向该子目录

appEventsChatMessagePosted


window.Echo.join('chatit').listen('Chat\MessagePosted', (e) => {
   console.log(e)
})

现在它正在 100% 工作

相关内容

  • 没有找到相关文章

最新更新