Laravel Echo + Redis聊天与队列冲突

问题描述

您好,我在react js中有一个应用程序,其中包含实时聊天,该应用程序已经可以正常工作,但是由于某种原因,我不得不添加一个队列来批量发送电子邮件。 现在的问题是事实的事件被队列的作业表捕获。

这是前面的回显代码

_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);
    }
}

当我在聊天之间发送消息时,它仍在作业表中注册

enter image description here

并且在laravel控制台echo中没有活动,它不执行任何操作:

enter image description here

如果有人经过类似的湖泊并能支持我,非常感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)