扩展SignalR Server Hub类以创建基本Hub类

时间:2012-04-29 15:42:05

标签: asp.net-mvc asp.net-mvc-4 signalr

我正在尝试扩展SignalR Hub类以创建一个基类,它是一个SignalR Hub,但它有一些额外的pzazz。

我的基类:

public class MyBaseHub : Hub 
{
    protected ISession NhSession { get; set; }

    public MyBaseHub(ISession nhSession)
    {
        NhSession = nhSession;
    }
}

我的派生类:

public class MyDerivedHub : MyBaseHub 
{                
    public MyDerivedHub(ISession nhSession) : base(nhSession) { }
}

以上构建正常,但SignalR生成的javascript引发错误,我无法在客户端上创建连接。我的基类中有更多的代码,但我全力以赴尝试缩小问题范围并发现问题出在客户端。

生成的Javascript在定义MyBaseHub集线器客户端时抛出异常“Uncaught SyntaxError:Unexpected Number”:

myBaseHub`1: { generated properties go in here }

所以我猜测SignalR集线器只能继承一次?有谁知道我想做什么是可能的?

1 个答案:

答案 0 :(得分:5)

您的问题是基本集线器是通用的,但代码示例没有显示它。如果你使类抽象,代理生成器将不会提取它。此外,您可以使用[HubName]属性重命名集线器。

[HubName("MyHub")]
public class MyHub2 : Hub 
{
}