Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何重新初始化推送器通道侦听_Jquery_Laravel_Real Time_Pusher_Pusher Js - Fatal编程技术网

Jquery 如何重新初始化推送器通道侦听

Jquery 如何重新初始化推送器通道侦听,jquery,laravel,real-time,pusher,pusher-js,Jquery,Laravel,Real Time,Pusher,Pusher Js,我正在使用jquery和pusher与laravel开发聊天。单击一侧的对话,我调用一个函数appendRealTimeMessage(),该函数开始侦听来自该对话的消息。 但问题是,若用户点击它两次,它将监听两次,函数将附加两次消息 这里是函数 function appendRealTimeMessage(conversation_id) { var channel = pusher.subscribe(`private-mc-chat-conversation.${conver

我正在使用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;
}

无论是否要执行侦听逻辑,请使用变量

const userListening = false;

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

  // function logic

  // at the end
  userListening = true;
}

你试过常数频道吗?没有。我想它会出错。你试过常数频道吗?没有。我想它会出错