Я пытаюсь повторно использовать логику для моего концентратора при отправке с сервера. У меня есть хаб, который выглядит так:
public class NotesHub : Hub<INotesCallbacks>, INotesCalls
{
public async Task AddNote(string note)
{
Note newNote = NotesService.Add(note);
// All connected clients will receive this call
await Clients.All.BroadcastNewNote(newNote);
}
}
У меня есть метод web-api, который я хочу использовать для отправки заметок своим клиентам. Я знаю, что могу сделать это из веб-сокета, но я бы предпочел использовать гибрид отдыха и веб-сокетов, чтобы в данный момент я мог просто выполнять нажатия на серверы.
Мой метод тестирования API выглядит так:
public IEnumerable<string> Get()
{
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<NotesHub>();
var note = "TestValue";
Note newNote = NotesService.Add(note);
context.Clients.All.BroadcastNewNote(newNote);
return new string[] { "value1", "value2" };
}
Я знаю, что могу абстрагировать логику к другому классу, но у меня уже есть логика в NotesHub. Есть ли способ, которым я могу просто вызвать мой метод Notes-концентратор из моего IHubContext
?