#c# #asp.net-core #asp.net-core-signalr
#c# #asp.net-core #asp.net-core-signalr
Вопрос:
Я работаю над ядром signalr в asp.net ядро 2.2. У меня есть как мобильные, так и веб-клиенты signalr core, я поддерживаю междоменное соединение.Мой веб-клиент успешно подключен к ядру signalr, но мой клиент Android выдает исключение ниже: «Веб-сокеты недоступны на вашем сервере», следовательно, веб-клиент также использует транспортный уровень веб-сокетов, и он находится в состоянии подключения.
мой серверный код находится в классе запуска
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder.SetIsOriginAllowed((host) => true)/*WithOrigins("https://localhost:44381")*/
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
services.AddSignalR();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseCors("CorsPolicy");
app.UseSignalR(routes =>
{
routes.MapHub<ChatHub>("/chatHub");
});
app.UseMvc();
}
Пожалуйста, ответьте мне, как я подключаю клиент Android signalr к серверу signalr core?
Комментарии:
1. @O.Jones какое отношение к этому имеет частота секундомера?
2. @kkarakk упс. работаю над чем-то другим во время ответа. неправильная ссылка. facepalm.
3. Вы смотрели на это? learn.microsoft.com/en-us/aspnet/core/fundamentals / … (правильная ссылка)
Ответ №1:
Вам необходимо включить WebSockets
поддержку на вашем сервере.
Чтобы включить веб-сокеты в Windows Server 2012 или более поздней версии :
Воспользуйтесь мастером добавления ролей и компонентов из меню «Управление» или ссылкой в диспетчере сервера.
Выберите установку на основе ролей или функций. Выберите Далее.
Выберите соответствующий сервер (по умолчанию выбран локальный сервер). Выберите Далее.
Разверните веб-сервер (IIS) в дереве ролей, разверните Веб-сервер, а затем разверните Разработка приложений.
Выберите протокол WebSocket. Выберите Далее.
Если дополнительные функции не нужны, выберите Далее.
Выберите Установить.
Когда установка завершится, выберите Закрыть, чтобы выйти из мастера.