Я реализовал сокет в laravel, однако у меня есть проблема.
Оказывается, есть 3 примера пользователей:
Alpha, delta and zeta
для Альфа пользователь: есть в избранных категориях
A) B) C)
Дельта имеет только избранные категории
G, H
при дзета создает новый продукт и присваивает ему категорию A)
my socket автоматически Публикуйте эту новую продажу, не заботясь о том, есть ли у DELTA ее или нет, в избранных
И, к сожалению,По мнению пользователя DELTA, информация отображается.с другими пользователями проблем нет.У них есть этот продукт в избранном.
Я пытался пропустить список избранных категорий, но это было проблемой.Так как, если бы у меня было 70 пользователей одновременно, загружая какой-то продукт X
каждый раз, когда я сравнивал.Я не знаю!Если возможно есть лучший способ сделать это.
Мое событие называется ProductUpdate, игнорируйте имя, как я его назвал.
Таким образом, у меня есть мой слушатель
Iне знаю как мне ехать точно
?php
namespace App\Listeners;
use App\Events\ProductoUpdated;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
class UpdatedProducto
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param ProductoUpdated $event
* @return void
*/
public function handle(ProductoUpdated $event)
{
dd('I do not know what I should write here.');
}
}
ну, у меня есть мое мероприятие.
<?php
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use App\Venta;
class ProductoUpdated implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
/**
* Create a new event instance.
*
* @return void
*/
public $venta;
public function __construct($venta)
{
//
$this->venta = $venta;
}
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
return new Channel('ventas-channel');
}
}
Я еще не реализовал, чтобы показать все сообщение.если это показано, но, как я уже говорил ранее.Он показывает информацию, где вы не должны это делать.
Echo.channel('ventas-channel')
.listen('ProductoUpdated',(data) => {
console.log(data); //
let ventas = data.ventas;
let html = `
<div class="card">
<h1>HOLA</h1>
</div>
`;
$(html).prependTo("#getpu");
})
$(html).prependTO -
to the oldest style of Jquery. LOL
Well, I plan to pass it to a Vue event. When it works at least like that.
Надеюсь, я объяснил связным образом.
, потому что у меня много сомнений относительно того, как показать информацию.
потому что,если у меня есть 6 продуктов, и каждый пользователь видит продукт в своем представлении, и если я оставляю комментарий к продукту (1), этот комментарий отображается для всех продуктов.
моя база данных верна, комментарии правильно связанык продукту, но моя единственная проблема - когда событие инициируется, и пользователь, который прокомментировал (x) продукт, отображается на всех продуктах.
Как я могу это контролировать?