У меня небольшое реагирующее веб-приложение, получающее данные из серверной части мобильного приложения Azure.Back-end - это простой REST API, использующий ApiController в C #.Клиенты должны быть проинформированы о конкретных изменениях в серверной части, выполненных другими клиентами.Поэтому я использую сигнализатор.Запуск всего на локальном хосте во время разработки работает нормально, и все сообщения отправляются правильно.Развертывание серверной части в Azure приводит к отправке только некоторых сообщений.Никакого конкретного типа сообщения только через 3-6 раз, когда оно должно быть отправлено, это будет.
Некоторые фрагменты - как я пытаюсь это сделать:
Чтобы все было действительно просто:
Концентратор выглядит так:
public class PostHub : Hub {}
Он зарегистрирован какследует (чтобы разрешить cors)
app.Map("/signalr", map =>
{
map.UseCors(new CorsOptions
{
PolicyProvider = new CorsPolicyProvider
{
PolicyResolver = context =>
{
var policy = new CorsPolicy();
policy.Origins.Add("*");
policy.AllowAnyMethod = true;
policy.AllowAnyHeader = true;
policy.SupportsCredentials = true;
return Task.FromResult(policy);
}
}
});
var hubConfig = new HubConfiguration { };
map.RunSignalR(hubConfig);
});
Отправка сообщения из метода контроллеров выглядит (упрощенно):
pubic async Task<IHttpActionResult> ChangeSomething(string id)
{
... update some data in the back-end if allowed and so on...
// result = changed data from the back-end having an Id property.
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<PostHub>();
context.Clients.All.InformToUpdateDataFor(result.Id);
return Ok(result);
}
Клиент (js) использует версию 2.3 сигнализатора пакета npm+0,0.И, как уже упоминалось, кажется, правильно получать сообщения (если они отправлены;)
В чем может быть проблема?Я читал здесь о некоторых других подобных проблемах, но они кажутся разными, потому что это не совсем определенно, когда сообщение отправляется, а когда нет.