我在我的应用程序中使用这些库:
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'
答案 0 :(得分:1)
您的项目中可能有两个不同的SignalR程序集。最新版本使用Microsoft.AspNet.SignalR
命名空间。检查您的程序集并删除以前的版本。
否则,您需要告诉编译器您要使用哪个命名空间。
public class ChatHub : Microsoft.AspNet.SignalR.Hub
修改强>
halter74指出IConnected
和IDisconnect
接口已被删除。可以在Hub Class上找到OnConnected
,OnDisconnected
和OnReconnected
个虚拟方法。
答案 1 :(得分:0)
这意味着它说的话。 Hub类在Microsoft.AspNet.SignalR
和SignalR.Hubs.Hub
名称空间中定义,并且您using
在代码中定义,因此编译器不知道使用哪个;您必须明确定义适当的类:
public class ChatHub : SignalR.Hubs.Hub, IConnected, IDisconnect
或
using Hub = SignalR.Hubs.Hub;