中心代码:
private readonly IHubContext<IMyHubClient> _context;
public MyHub(IHubContext<IMyHubClient> context)
{
_context = context;
}
public override Task OnConnected()
{
string userName = Context.User.Identity.Name;
string connectionId = Context.ConnectionId;
//some code to store connected user info
return base.OnConnected();
}
客户代码:
$.connection.myHub.client.connected = function() { alert('1'); };
$.connection.myHub.client.disconnected = function() { alert('2'); };
$.connection.hub.start()
.done(function(){ console.log('Now connected, connection ID=' + $.connection.hub.id); })
.fail(function(){ console.log('Could not Connect!'); });
客户端成功连接到hub并且js回调正在运行。但服务器端的OnConnected方法永远不会触发。可能是什么问题?
答案 0 :(得分:2)
MyHub
是否构建完毕?我怀疑SignalR是否能够提供IHubContext<IMyHubClient>
参数。如果添加无参数构造函数或删除现有构造函数,则代码应该可以正常工作。