Echo join 不接收来自广播状态频道的数据
Echo join does not recieve data from broadcasted presence channel
我对 laravel 的 echo 和 pusher 非常基础,尽管有文档和教程,但我一直面临一个问题。我正在尝试在我的网站上创建一个实时聊天消息功能,跟随一个 youtube 视频。
我的控制器、模型、通道和 app.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;
});
应用程序:
window.Echo.join('chatit')
.listen('MessagePosted', (e) => {
console.log(e)
});
我现在的问题是,如果我在我的模型中 return chatit(我已经评论过),并更改加入频道,我会看到 console.log 的结果,但是当我改用存在通道,并在 app.js 中使用加入,我只获得消息发送状态。
任何帮助将不胜感激。
我不知道为什么,但经过几个小时的挫折后,我重新启动了我的电脑,它就开始工作了。
我还发现终止并重新运行 php artisan serve 进程也可以解决问题
在我的例子中,我的事件 MessagePosted
位于 Events
目录中的子目录 Chat
中,为了能够记录事件数据,您必须指向该子目录目录
app\Events\Chat\MessagePosted
window.Echo.join('chatit').listen('Chat\MessagePosted', (e) => {
console.log(e)
})
现在 100% 正常工作
我对 laravel 的 echo 和 pusher 非常基础,尽管有文档和教程,但我一直面临一个问题。我正在尝试在我的网站上创建一个实时聊天消息功能,跟随一个 youtube 视频。 我的控制器、模型、通道和 app.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;
});
应用程序:
window.Echo.join('chatit')
.listen('MessagePosted', (e) => {
console.log(e)
});
我现在的问题是,如果我在我的模型中 return chatit(我已经评论过),并更改加入频道,我会看到 console.log 的结果,但是当我改用存在通道,并在 app.js 中使用加入,我只获得消息发送状态。 任何帮助将不胜感激。
我不知道为什么,但经过几个小时的挫折后,我重新启动了我的电脑,它就开始工作了。
我还发现终止并重新运行 php artisan serve 进程也可以解决问题
在我的例子中,我的事件 MessagePosted
位于 Events
目录中的子目录 Chat
中,为了能够记录事件数据,您必须指向该子目录目录
app\Events\Chat\MessagePosted
window.Echo.join('chatit').listen('Chat\MessagePosted', (e) => {
console.log(e)
})
现在 100% 正常工作