我对 laravel 事件广播概念很陌生,我有一些不刷新页面的要求,我需要更新 Angular 站点中的数据。我通过使用 pusher 创建了一个存在通道。一旦它被触发,我就在我的队列类中调用我的广播我从 Pusher Debugger 控制台收到一条 API 消息,其中包含触发的数据,直到这部分正常。首先我想知道天气服务器端实现代码和逻辑是否正确,如果错误意味着您可以帮助修复吗?
while executing queue i am triggering my event like below
broadcast(new LiveSyncEventsFromAutomation(['dat' => $converted_duedate ],$primaryId,
$data['sss'],$data['ss']));
<?php
namespace App\Events\workflow;
use Config;
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Broadcast;
use Illuminate\Support\Facades\Config as FacadesConfig;
class LiveSyncEventsFromAutomation implements ShouldBroadcastNow
{
use Dispatchable, InteractsWithSockets, SerializesModels;
/**
* Create a new event instance.
*
* @return void
*/
public $field_details;
public function __construct($field_details)
{
$this->field_details = $field_details;
}
public function broadcastQueue(): string
{
//
return 'liveupdates';
}
public function broadcastOn()
{
return new PresenceChannel('test'.$this->companyName.$this->orderId.$this->user);
}
public function broadcastWith(): array
{
return [
'live_details' => $this->field_details
];
}
}
channels.php
Broadcast::channel('test.{companyname}.{jobid}.{userid}', function ($user, $companyname, $jobid, $userid) {
return true;
});
BroadcastServiceProvider.php
{
Broadcast::routes(['middleware'=>'liveUpdates']); //added custom middleware to add authtoken in request object
require base_path('routes/channels.php');
}
对于身份验证,我使用单独的路由而不是默认路由
broadcast/auth
.
我正在进入 Pusher 控制台,就像我的主要疑问是天气这个实现是否正确。如果可能的话,你能简单介绍一下概念吗?
Channel: presence-testSAI411, Event: App\Events\workflow\LiveSyncEventsFromAutomation