laravel echo+redis chat与队列冲突

inb24sb2  于 2021-06-08  发布在  Redis
关注(0)|答案(0)|浏览(247)

你好,我在react js中有一个应用程序,其中包含一个实时聊天,这已经起作用了,但由于一些原因,我不得不添加一个队列来批量发送电子邮件。现在的问题是,事实的事件被队列的job表捕获。
这是前面的回音代码:

_livechat(channelId) 
{
    window.Echo.private(`chat.${channelId}`)
    .listen('.MessageSend', (e) => {
        console.log(e)
      if (this.state.myId != e.data.sender_id) {
        var messages = this.state.messages
        messages.push(e.data)
        this.setState({messages,firstKey:this.state.myFirstKey})
        this.messagesEnd.current.scrollTop = this.messagesEnd.current.scrollHeight
      }
    }).listenForWhisper('typing', (e) => {
        this.setState({
            isTyping:e.typing
        })
    })
}

这是一个事件:

class MessageSend implements ShouldQueue, ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;
    public $message, $channelID;
    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($message, $channelID)
    {
        $this->message    = $message;
        $this->channelID  = $channelID;
    }
    public function broadcastWith()
    {
        return ['data' => $this->message];
    }
    /**
     * Get the channels the event should broadcast on.
     *
     * @return \Illuminate\Broadcasting\Channel|array
     */
    public function broadcastOn()
    {
        return new PrivateChannel('chat.'.$this->channelID);
    }
}

当我在聊天室之间发送消息时,它仍在job表中注册:
在此处输入图像描述
在laravel控制台中,没有任何活动,它不执行任何操作:
在此处输入图像描述
如果有人经过一个类似的湖,可以支持我,非常感谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题