jquery - 如何重新初始化推送通道监听
问题描述
我正在使用 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;
}
推荐阅读
- c# - WPF StackPanel 性能
- sql - 以特定方式对列值进行排序
- python - 获取 a 标签的 href
- c# - Newtonsoft JToken 的列表框显示值
- office-interop - 正确/可靠地替换 MS Word 互操作
- razor - 如何使 2sxc 应用程序 URL 显示在 DNN 的 Sitemap.aspx 中?
- python - 我正在尝试如何将此输出打印到 python 上的文本文件
- google-app-engine - AppEngine OpenAPI Gateway API Key 空超时
- swift - 无法在 SwiftUI 中迭代 Published<[String]>.Publisher
- linux - 谁能帮我找出代码中的错误?