Я новичок в SignalR и прошел пример реализации.Я создал простой Hub, и до сих пор я пытаюсь отправить сообщение конкретному пользователю.Я заставил его работать на день, но он больше не работает.Я проверил CustomUserIdProvider, и он на самом деле возвращает правильный идентификатор пользователя.Будем благодарны за любые предложения.
Это мой хаб
public class AssignmentHub : Hub
{
public override Task OnConnected()
{
return base.OnConnected();
}
public override Task OnDisconnected(bool stopCalled)
{
return base.OnDisconnected(stopCalled);
}
public override Task OnReconnected()
{
return base.OnReconnected();
}
}
Это мой CustomerUserIdProvider
public class CustomUserIdProvider: IUserIdProvider
{
public string GetUserId(IRequest request)
{
var userId = ((ClaimsIdentity) HttpContext.Current.User.Identity).FindFirst(ClaimTypes.NameIdentifier).Value;
return userId;
}
}
Это мои скрипты из _Layout.cshtml
<script type="text/javascript" src="~/Scripts/jquery.signalR-2.4.0.min.js"></script>
<script type="text/javascript" src="~/signalr/hubs"></script>
<script type="text/javascript">
$(function() {
var assignmentNotificator = $.connection.assignmentHub;
assignmentNotificator.client.addNotification = function (message) {
alert(message);
}
$.connection.hub.logging = true;
$.connection.hub.start().done(function () {
console.log($.connection.hub.userId);
});
});
</script>
И часть моего Global.asax
protected void Application_Start()
{
GlobalHost.DependencyResolver.Register(typeof(IUserIdProvider), () => new CustomUserIdProvider());
}