套接字-带有Laravel和Redis-

时间:2018-09-30 06:17:26

标签: laravel sockets redis socket.io

我已经在laravel中实现了socket,但是我遇到了问题。

事实证明,有3个被称为示例用户:

Alpha, delta and zeta

Alpha 用户:将其作为收藏夹类别

  A) B) C)

Delta 仅具有喜欢的类别

G, H

zeta 创建新产品并将其分配为A类时)

我的插座会自动发布该新交易,而无需关心DELTA是否在收藏夹

不幸的是,在DELTA用户看来,该信息已显示。其他用户没有问题。他们的收藏夹中有该产品。

我试图传递喜欢的类别列表,但这是一个问题。因为如果我同时有70个用户,则上传了一些产品X

每次比较时。我不知道!也许有更好的方法可以做到这一点。

我的事件称为ProductUpdate,请忽略该名称。

这样我就有了听众

我不知道应该怎么走

?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)产品发表评论的用户。

我该如何控制?

0 个答案:

没有答案