Я создаю пользовательскую. net стандартную библиотеку 2.1 для клиентского сигнализатора с таким классом, как этот:
class OmsSignalRClient : IOmsSignalRClient
{
private HubConnection _hubConnection;
public OmsSignalRClient(Uri baseUri, string token)
{
_hubConnection = new HubConnectionBuilder()
.WithUrl(baseUri.ToAbsoluteUri("/signalr/clientHub").AbsoluteUri, option =>
{
option.AccessTokenProvider = () => Task.FromResult(token);
})
.Build();
_hubConnection.On<string>("SayHellow", date => OnTestData?.Invoke(this, new TestDataEventArgs(date)));
}
public event EventHandler<TestDataEventArgs> OnTestData;
public async ValueTask DisposeAsync()
{
if (_hubConnection != null)
{
await _hubConnection.DisposeAsync().ConfigureAwait(false);
}
}
public async Task StartAsync() => await _hubConnection.StartAsync();
}
, затем в моем блейзоре. net core 3.1 Размещаемое приложение создает компонент и использует его следующим образом: это:
protected override async Task OnInitializedAsync()
{
var loginData = new LoginData()
{
UserName = "admin",
Password = "123@456#Pass"
};
Console.WriteLine("Start");
_omsClient = (IOmsSignalRClient)await _omsClientFactory.OpenConnectionAsync(new Uri(_navigationManager.Uri), loginData).ConfigureAwait(false);
_omsClient.OnTestData += (_, e) =>
{
_messageInput = e.Data;
StateHasChanged();
};
await _omsClient.StartAsync().ConfigureAwait(false);
}
в запущенном приложении я вижу эту ошибку:
Firefox не может установить sh соединение с сервером по адресу wss: // localhost: 5001 / signalr / clientHub? Id = q1wR_w0DENOM2B5qaAg0bw.
firefox консольное диалоговое изображение
firefox сетевое диалоговое окно
но при использовании lib in. net консольное приложение core 3.1 все в порядке и соединение установлено.
Я думаю, что проблема должна быть связана с тем, что браузер использует http / 2.0 и http / 1.1 но консольное приложение использует только http / 1.1.
любая идея?
другие стороны моего приложения и конфигурации в порядке, потому что при удалении [Authorize]
из класса концентратора в серверной app.connection установлено и приложение работает правильно.
firefox сетевое диалоговое окно для удаления атрибута авторизации из концентратора
есть идеи?
Спасибо.