如何重新初始化推送通道监听

问题描述

我正在使用 jquery 和 pusher 与 laravel 开发聊天。从一侧单击对话时,我调用函数 appendRealTimeMessage(),该函数开始收听来自该对话的消息。 但问题是如果用户点击它两次它会听两次并且函数会附加两次消息

这是函数

function appendRealTimeMessage(conversation_id) {
  


  var channel = pusher.subscribe(`private-mc-chat-conversation.${conversation_id}`);

  channel.bind('Musonza\\Chat\\Eventing\\MessageWasSent',function (data) {
    var message = data.message;

    if (message.sender.participation[0].messageable_type == 'App\\Models\\Customer') {
      $('.kt-chat__messages').append(``);
    }
  });
}

如何通过附加两次来阻止它?

解决方法

是否要执行监听逻辑,请使用变量

const userListening = false;

function appendRealTimeMessage(conversation_id) {
  if(userListing){
     return;
   }

  // function logic

  // at the end
  userListening = true;
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...