signalr.client - 如何从 SignalR 客户端注销函数?
问题描述
考虑以下代码:
var connection = new signalR.HubConnectionBuilder().withUrl("/hub").build();
connection.on("ReceiveMessage", (message) => {
console.log("Once");
});
connection.on("ReceiveMessage", (message) => {
console.log("Twice");
});
现在,当服务器发送ReceiveMessage
到客户端时,浏览器的控制台包含...Once
和Twice
. 显然,这两个函数都被调用了。
问题是,由于我缺乏经验和知识,我假设为同一命令(ReceiveMessage
在这种情况下)注册一个新功能将自动替换以前注册的功能,如果有的话。我正在用这个假设编写我的程序。一旦我开始注意到我的程序的奇怪行为,我只需要验证这个假设。
我可以以某种方式注销以前注册的处理程序吗?或者我应该重写我的 JS 代码,假设我应该只为每个命令的每个连接注册一个函数?
解决方案
var connection = new signalR.HubConnectionBuilder().withUrl("/hub").build();
connection.off("ReceiveMessage");
connection.on("ReceiveMessage", (message) => {
console.log("Once");
});
connection.off("ReceiveMessage");
connection.on("ReceiveMessage", (message) => {
console.log("Twice");
});
推荐阅读
- c++ - C++ 模板继承 2 个参数
- react-native - react native获取对话框组件的位置和大小
- css - 在项目悬停时保持 DropDown Caret 动画
- android - Material Design Extended Floating Action Button 没有涟漪效应
- c# - JsonSerializer.Deserialize 不填充对象内的列表
- c++ - 在 CImg 中加载点云
- swift - 如何在 Swift 中将带有对象的 JSON 解码为字符串值
- sql - 有没有办法在 hive sql 中使用 OUTER UNION CORR?
- php - 从命令行执行php时获取apache环境变量
- javascript - 选择选项加载后消失