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

Ani*_*tel 4 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的派生类:

public class MyDerivedHub : MyBaseHub 
{                
    public MyDerivedHub(ISession nhSession) : base(nhSession) { }
}
Run Code Online (Sandbox Code Playgroud)

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

定义MyBaseHub集线器客户端时,生成的Javascript引发异常“ Uncaught SyntaxError:Unexpected Number”:

myBaseHub`1: { generated properties go in here }
Run Code Online (Sandbox Code Playgroud)

所以我猜想SignalR集线器只能被继承一次?有人知道我要做什么吗?

dav*_*owl 5

您的问题是基本集线器是通用的,但代码示例未显示它。如果您将类抽象化,则代理生成器不会选择它。另外,您可以使用[HubName]属性重命名集线器。

[HubName("MyHub")]
public class MyHub2 : Hub 
{
}
Run Code Online (Sandbox Code Playgroud)