Веб-сокеты не доступны на ядре сигнализатора? - PullRequest
0 голосов
/ 18 марта 2019

Я работаю на ядре сигнализатора под ядром asp.net 2.2. У меня есть мобильные и веб-клиенты сигнализатора, я поддерживаю кросс-доменное соединение. Мой веб-клиент успешно подключен к ядру сигнализатора, но мой клиент для 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-клиент к клиенту-сигнализатору?

1 Ответ

0 голосов
/ 19 марта 2019

Вам необходимо включить поддержку WebSockets на вашем сервере.

Чтобы включить WebSockets в Windows Server 2012 или более поздней версии:

  • Используйте мастер добавления ролей и компонентов из меню «Управление» или по ссылке в диспетчере сервера.

  • Выберите установку на основе ролей или функций.Выберите Далее.

  • Выберите соответствующий сервер (локальный сервер выбран по умолчанию).Выберите Далее.

  • Разверните Веб-сервер (IIS) в дереве ролей, разверните Веб-сервер, а затем разверните Разработка приложений.

  • Выберите WebSocketПротокол.Выберите Next.

  • Если дополнительные функции не нужны, нажмите Next.

  • Выберите Install.

  • После завершения установки выберите Закрыть, чтобы выйти из мастера.

...