gpt4 book ai didi

php - Laravel echo 没有监听

转载 作者:行者123 更新时间:2023-12-01 04:38:51 26 4
gpt4 key购买 nike

我来自委内瑞拉,我在尝试将 laravel echo 与项目集成时遇到问题,我尝试了一切,希望得到您的帮助。

也许我没有以正确的方式工作。

我正在尝试通过套接字 io 使用广播事件,因为我在一家初创公司工作,很难为 Pusher 这样的服务付费。

我正在尝试进行简单的实时聊天..

那是我的聊天 Controller ..

public function index(Request $request){

$sender=Auth::user()->id;
$receiver=\App\User::find(2);
$message=new Message;
$message->message="Hola, esto es una prueba de eventos";
$message->user_receiver_id=$receiver->id;
$message->user_sender_id=Auth::user()->id;
$message->id_chat=1;
$message->save();

event(new \App\Events\sendMessage($message,$receiver));

return response()->json(["status"=>"ok"]);
}

此聊天根据确定的组(聊天)将消息存储在数据库中。

将触发的事件是:

类 sendMessage 实现 ShouldBroadcast{ 使用 Dispatchable、InteractsWithSockets、SerializesModels;

/**
* Create a new event instance.
*
* @return void
*/

public $message;
public $user_receiver;

public function __construct(Message $message,User $user_receiver)
{
$this->message=$message;
$this->user_receiver=$user_receiver;

}

public function broadcastOn()
{
\Log::info($this->message->id_chat);

return new PrivateChannel('chat.1');


}}

我的 app.js 是:

require('./bootstrap');
import Echo from "laravel-echo";

window.Echo = new Echo({
broadcaster: 'socket.io',
host: window.location.hostname + ':6001'
});


window.Echo.channel('chat.1')
.listen('sendMessage', e => {
console.log(e);
});

首先,我只想从 sendMessages 事件中获取公共(public)变量,之后我将构建 View 。

我运行 php artisan 监听器并运行 de laravel echo 服务器。

当我发送消息时,laravel echo 服务器和监听器会发生这种情况:

Laravel echo server output

enter image description here

我认为这个过程工作正常,但我认为我只是与客户有问题..

因为当我发送消息时客户端没有任何反应。

抱歉我的英语不好,希望你能帮助我。

最佳答案

如果您使用 Echo.channel(my-channel) 例如,您需要执行类似的操作,请注意 ('.my-event') 出于某种原因您需要(.) 位于事件名称之前。

Echo.channel(`my-channel`)
.listen('.my-event', (e) => {
consolec.log(e);
});

关于php - Laravel echo 没有监听,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43927792/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com