public Task SendTo(Message message) { string userId = Context.UserIdentifier; AppUser user = userManager.FindByIdAsync(userId).Result; if (userManager.IsInRoleAsync(user, "student").Result) { Client toClient = context.Clients .Include(c => c.ClientUser) .First(c => c.ClientId == Int64.Parse(message.Id)); var messageForUser = NewMessage.Create(Context.Items["Name"] as string, message); return(Clients.User(toClient.ClientUser.Id).Send(messageForUser)); } else if (userManager.IsInRoleAsync(user, "client").Result) { Student toStudent = context.Students .Include(s => s.StudentUser) .First(c => c.StudentId == Int64.Parse(message.Id)); var messageForUser = NewMessage.Create(Context.Items["Name"] as string, message); return(Clients.User(toStudent.StudentUser.Id).Send(messageForUser)); } return(Task.CompletedTask); }
public Task SendToAll(Message message) { var messageForAll = NewMessage.Create( Context.Items[Name] as string, message); return(Clients.Others.Send(messageForAll)); }
private NewMessage GetInfoMessage(string info, string text = null) { return(NewMessage.Create( Context.ConnectionId, new Message { Title = $"{info}, from ID:{Context.ConnectionId}", Text = text ?? string.Empty } )); }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { var newMessageForAnonymous = NewMessage.Create("System", messageForAnonymous); await hubContext.Clients.User("Anonymous").Send(newMessageForAnonymous); var newMessageForSubscribers = NewMessage.Create("System", messageForSubscribers); await hubContext.Clients.Group("Subscribers").Send(newMessageForSubscribers); await Task.Delay(TimeSpan.FromSeconds(5), stoppingToken); } }
public Task SendToOthers(Message message) { var messageForClient = NewMessage.Create(Context.Items["Name"] as string, message); return(Clients.Others.Send(messageForClient)); }
public Task SendToOthers(Message message) { var messageForClient = NewMessage.Create(Context.UserIdentifier, message); return(Clients.Others.Send(messageForClient)); }