ITransientDependency
을 구현하는 클래스에서 UserId
을 AbpSession
으로 가져올 수 없습니다.AbreSession에서 SignalR 허브의 사용자 ID 가져 오기
public class Chat : Hub, ITransientDependency
{
public IAbpSession AbpSession { get; set; }
public ILogger Logger { get; set; }
public Chat()
{
AbpSession = NullAbpSession.Instance;
Logger = NullLogger.Instance;
}
private static List<MemberDto> _members = new List<MemberDto>();
public Task Send(string message)
{
return Clients.All.InvokeAsync("Send", string.Format("User {0}: {1}", UserId(), message));
}
public long? UserId()
{
return AbpSession.UserId;
}
}
속성 UserId
및 TenantId
은 여전히 null
있습니다.
Chat
클래스는 AbpSession
이 잘 작동하는 "응용 프로그램"레이어 안에 있습니다.
안녕하세요 아론 : 나는 SignalR .NET의 핵심 알파 2, 그래서 시작의 코드를 사용하고있어이 하나입니다 app.UseSignalR (경로 => { routes.MapHub ("API/채팅"); }); –
문제는 "채팅"의 주입과 관련이 없습니다. 문제는 다음과 같습니다. https://github.com/aspnetboilerplate/aspnetboilerplate/issues/2623과 같은 SignalR의 일부 승인.하지만 SignalR .NET 코어에 적응해야합니다. Alpha –
@aaron, 물론이 질문을 게시하기 전에이 질문을 이미 시도했습니다. 나는 그것을 포기했다. 나는 당신이 signalR과 auth를 사용하지 않으면 작동하지 않을 것이라고 생각한다. 그래서 저는 허브를 사용하기 전에 컨트롤러의 방법을 사용하고 있습니다. 그리고 그것은 제 경우에 맞게 조정되었습니다. –