Хорошо, поэтому основная проблема здесь заключалась в том, что где-то, когда я начинал, я узнал, как заставить Hub реагировать на методы API (я не мог найти, где к тому времени, когда я публикую этот ответ), а затем яКлиентам удалось найти только разные способы вызова методов Hub, и один из них не работал с другим.Я не могу установить оба значения одинаково.
Это код из контроллера моего API:
public IHttpActionResult TesteComunicacao(string mensagem)
{
MyHub.GetStatus("Message here!");
return Ok("ok");
}
И метод Hub:
// Use this for Server Methods
public static void GetStatus(string message)
{
hubContext.Clients.All.acknowledgeMessage($"GetStatus: {message}");
}
Этоединственный способ, который я нашел, чтобы это произошло.Концентратор не будет отвечать методом, используемым клиентами.У них должен быть другой код, например, метод Хаба:
// Use this for Clients Methods
public void GetMessage(string message)
{
Clients.Caller.acknowledgeMessage($"GetMessage: {message}");
}
Я пытался реализовать свое решение " hubContext " для метода клиентов, но он не работалвсе, и когда я попытался реализовать решение " Clients ", которое позже обнаружил использование моим API, мне пришлось сделать его "нестатическим методом", а затем вызвать его на контроллере, которая привела только к этой ошибке: «использование hubcontext вне конвейера концентратора не отсортировано»
И затем я нашел этот благословенный ответ здесь, на переполнении стека, который в конце концов показал мне, где я был неправ.
И это именно то, что я делал неправильно.Я должен реализовать тогда по-разному в зависимости от цели метода.Те, которые будут использованы моим API, используют " hubContext ", а те, которые будут использованы моим клиентским приложением, используют " Clients ".
Надеюсь, это поможетдругие люди борются с этой проблемой, чтобы найти ее быстрее, поскольку благословенный ответ был о ASP.NET MVC, а не о Web API.