gpt4 book ai didi

php - Pusher 和 Laravel 回显太慢或者我的代码有问题?

转载 作者:行者123 更新时间:2023-12-05 04:11:54 25 4
gpt4 key购买 nike

我在 homestead 上使用 Laravel 5.3。这是我用于通过 pusher 和 laravel echo 广播事件的代码,以实时通知用户新消息 -

 class NewMessageReceived implements ShouldBroadcast
{
use InteractsWithSockets, SerializesModels;
public $message;
public $user;
public $sender;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct(Message $message, User $user)
{
$this->message = $message;
$this->user = $user;
$this->sender = \Auth::user();
}

/**
* Get the channels the event should broadcast on.
*
* @return Channel|array
*/
public function broadcastOn()
{
return new PrivateChannel('user.'. $this->user->id);
}

}

这是调用此事件的代码-

     try{
$m = $privateChat->messages()->save($m);
if( isset(Auth::user()->guide))
event ( new NewMessageReceived( $m, $m->messageable->tourist->user ));
else
event ( new NewMessageReceived( $m, $m->messageable->guide->user ));

return $m;
}
catch(Exception $e){
return $e;
}

vue 中有一个 ajax 调用,它接收上面代码生成的响应,即 $m 。

问题是如果我使用下面的代码而不是上面的代码,收到响应的速度至少要快 5 倍。我只需要删除事件触发部分以使其运行得更快(这是不需要的,因为我想实时更新用户)-

    try{
$m = $privateChat->messages()->save($m);

return $m;
}
catch(Exception $e){
return $e;
}

如果您能帮我找出这种行为背后的原因,以及我如何让这一切实时发生,而不是现在存在的延迟,那将会很有帮助。

最佳答案

您应该将 ShouldBroadcast 更改为 ShouldBroadcastNow。这将解决延迟问题。

关于php - Pusher 和 Laravel 回显太慢或者我的代码有问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41838857/

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