0

我已经使用 MVC4 与 SignalR 合作了几个星期,并且在简单设置方面大部分都取得了成功。使用一页设置和集线器从服务器向所有客户端发送消息没有问题。

我正在处理的当前项目,我正在尝试使用组,所以在我启动客户端连接后,我尝试像这样调用服务器。

在我的 _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 事件处理程序。这基本上破坏了整个集线器,它不允许服务器调用。

4

1 回答 1

1

对不起,没有意义的帖子。集线器构造函数中有一些东西引发了异常,但这并不明显。显然它不在我发布的代码中,但基本上,我在构造函数中为 null 的对象上添加了一个 PropertyChanged 事件处理程序。这基本上破坏了整个集线器,它不允许服务器调用。

于 2013-05-31T20:02:25.247 回答