每个事件具有多个事件处理程序的SignalR
SignalR with multiple event handlers per event
在C#中,我会将许多处理程序挂接到这样的事件:
event += firstEventHandler;
event += secondEventHandler;
但是我们用SignalR编写的JavaScript:
$.connection.someHubName.client.someEventName = function (item) {
console.log("someMessage", item);
};
我创建了一个看起来有点像这样的包装器:
var signalRClient = {
start: function (callback) {
$.connection.hub.url = ajaxHttp + "/signalr";
$.connection.hub.logging = true;
if ($.connection.hub && $.connection.hub.state === $.signalR.connectionState.disconnected) {
$.connection.hub.start({ jsonp: true, withCredentials: true, transport: ['webSockets', 'longPolling'] }).done(callback);
} else {
callback();
}
},
connection: $.connection
}
我可以用这种方式打电话:
signalRClient.connection.somehub.client.someEvent = function (item) {
console.log("someMessage", item);
};
signalRClient.start(function () {
signalRClient.connection.somehub.server.subscribe(someId);
});
但是,如果我在多个视图中(在同一个呈现的页面上)运行signalRClient,它只能为一个事件分配一个函数。我希望能够为一个事件分配多个功能。
我已阅读:通过多个连接++连接到信号机集线器和signalr客户端
但我认为,为此目的创建多个到同一集线器的连接不是一个好主意。我也会尽量避免在布局中创建SignalR代码,并使所有视图都依赖于此。
有没有一个简单的解决方案可以让我将许多事件处理程序挂接到$.connection.somehub.client.event
?
在尝试了许多不同的事情后,我成功地使用了.on(命令)。它是这样完成的:
signalRClient.connection.somehub.on("someevent", function(item) {
console.log(item);
});
signalRClient.connection.somehub.on("someevent", function (item) {
console.log(item);
});
这将在控制台中为每个事件提供两行。
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- keyup事件处理程序更改焦点不适用于快速键入
- 用程序搜索JQuery数据表中的文本
- Javascript:selenium Web驱动程序isDisplayed()不工作
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- Emberjs应用程序加载在除Index之外的所有路由上
- ExtJS 5用程序点击actioncolumn gridview
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 如何从Java/scala调用js美化程序
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- angularjs/signalR引导程序条未随控制器更改而更新
- 每个事件具有多个事件处理程序的SignalR
- 尝试在 Chrome 扩展程序中使用 SignalR 连接到中心时出错
- 使用Watir网络驱动程序Firefox与JavaScript SignalR轮询
- SignalR客户端应用程序在VS2008中运行时无法连接
- SignalR web应用程序,笔记本电脑服务器负载测试
- 如何从iOS上的PhoneGap应用程序连接到SignalR集线器
- signalR web应用程序和控制台示例
- SignalR可以用于从控制台应用程序发送消息吗?该消息将显示在浏览器中