Гнездо с ларавеллой и редисом - - PullRequest
0 голосов
/ 30 сентября 2018

Я реализовал сокет в 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) продукт, отображается на всех продуктах.

Как я могу это контролировать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...