我已经使用SignalR和MVC4工作了几个星期,并且在简单的设置方面大部分都取得了成功。我通过一个页面设置和一个集线器从服务器向所有客户端发送消息没有任何问题。
我正在处理的当前项目,我正在尝试使用组,所以在我启动客户端连接后,我尝试像这样调用服务器。
在我的_Layout.cshtml
中 var dashboardhub;
$(document).ready(function () {
dashboardhub = $.connection.dashboardHub;
dashboardhub.client.connect = function () { };
window.hubReady = $.connection.hub.start();
});
在我的Index.cshtml中
window.hubReady.done(function () {
dashboardhub.server.addGroup('@ViewContext.RouteData.Values["area"].ToString()');
}).fail(function () {
console.log('connection failed');
});
在我的DashboardHub类
中public class DashboardHub : Hub {
/// <summary>
/// Constructor
/// </summary>
public DashboardHub() {
}
public void AddGroup(string group) {
this.Groups.Add(Context.ConnectionId, group);
}
}
当在客户端触发dashboardhub.server.addGroup时,我从未看到它遇到过服务器方法AddGroup。这显然使得创建群组变得困难。
我很可能错过了什么,但我不完全确定那可能是什么。任何指针都会非常感激。
编辑:抱歉这篇毫无意义的帖子。集线器构造函数中有一些东西抛出了异常,但它非常不明显。显然它不在我发布的代码中,但基本上,我在构造函数中为null的对象上添加了一个PropertyChanged事件处理程序。这基本上打破了整个集线器,它不允许服务器调用。答案 0 :(得分:1)
对于毫无意义的帖子感到抱歉。集线器构造函数中有一些东西抛出了异常,但它非常不明显。显然它不在我发布的代码中,但基本上,我在构造函数中为null的对象上添加了一个PropertyChanged事件处理程序。这基本上打破了整个集线器,它不允许服务器调用。