'Hub'是一个含糊不清的参考

时间:2013-05-14 08:12:20

标签: javascript jquery signalr signalr-hub

我在我的应用程序中使用这些库:

using SignalRDemo.Hubs;
using Microsoft.AspNet.SignalR.Hubs;
using System.Threading.Tasks;
using System.Web.Script.Serialization;

现在我必须实现IConnect, IDisconnect接口。所以,我添加了using SignalR.Hubs; 并在我的ChatHub类中添加了一个函数:

   public class ChatHub : Hub, IConnected, IDisconnect
     {
     public Task Connect()
            {
                //Call the joined method on all connected clients
                return Clients.joined(Context.ConnectionId);

            }
     }

客户端代码:

chatHub.joined = function (connectionId) {
                $('#connections').append('<li>Connect: ' + connectionId + '</li>');
            }

但是,当我构建解决方案时,它会显示错误。

   'Hub' is an ambiguous reference between 'Microsoft.AspNet.SignalR.Hub' and 'SignalR.Hubs.Hub' 

2 个答案:

答案 0 :(得分:1)

您的项目中可能有两个不同的SignalR程序集。最新版本使用Microsoft.AspNet.SignalR命名空间。检查您的程序集并删除以前的版本。

否则,您需要告诉编译器您要使用哪个命名空间。

public class ChatHub : Microsoft.AspNet.SignalR.Hub

修改

halter74指出IConnectedIDisconnect接口已被删除。可以在Hub Class上找到OnConnectedOnDisconnectedOnReconnected个虚拟方法。

答案 1 :(得分:0)

这意味着它说的话。 Hub类在Microsoft.AspNet.SignalRSignalR.Hubs.Hub名称空间中定义,并且您using在代码中定义,因此编译器不知道使用哪个;您必须明确定义适当的类:

public class ChatHub : SignalR.Hubs.Hub, IConnected, IDisconnect

using Hub = SignalR.Hubs.Hub;