У меня действительно простое. Net Приложение Core 3.1 для тестирования, которое запускает соединение на signalR. Вот функция, которая у меня есть во внешнем интерфейсе, которая запускает соединение.
const App: React.FC = () => {
const connection = new signalR.HubConnectionBuilder()
.withUrl("/hub")
.configureLogging(signalR.LogLevel.Trace)
.build();
connection.start().catch(err => document.write(err));
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.tsx</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
Также вот мой код конца.
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<ChatHub>("/hub");
});
app.UseSpa(spa =>
{
spa.UseProxyToSpaDevelopmentServer("http://localhost:3000");
});
}
}
Когда я впервые загружаюсь или когда я жду около 2 минут перед refre sh приложением. Подключается сразу. Вот пример журнала, который я получаю:
[2020-01-07T16: 53: 23.217Z] Отладка: Выбор транспорта 'WebSockets'.
[ 2020-01-07T16: 53: 23.218Z] Трассировка: (транспорт WebSockets) Подключение.
[2020-01-07T16: 53: 23.531Z] Информация: подключен WebSocket to wss: // localhost: 44344 / hub? id = 6pXMScFZez-Vv72C73Etfw.
Но когда я обновляю sh браузер, он остается в состоянии «подключения» и примерно через 2 минуты он наконец соединяет. Вот пример журнала в этом случае:
[2020-01-07T16: 53: 49.069Z] Отладка: Выбор транспорта 'WebSockets'.
[2020 -01-07T16: 53: 49.070Z] Трассировка: (транспорт WebSockets) Подключение.
[2020-01-07T16: 55: 25.574Z] Информация: WebSocket подключен к WSS: // локальный: 44344 / ступица ID = BPT4DkdPVgBj-nkOarAyNQ.
Вопрос: Есть ли какая-либо конфигурация на signalR, чтобы избежать этого ожидания перед повторным подключением? (Это то, что происходит только на Net Core 3.1, никогда не было этой проблемы с предыдущими версиями)
Спасибо.