Сигнал повторного использования SignalR при передаче с сервера - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь повторно использовать логику для моего концентратора при отправке с сервера. У меня есть хаб, который выглядит так:

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?

...