首页 > 解决方案 > 如何使 SignalR 服务器仅对特定 URL 使用长轮询?

问题描述

我有一个带有一些网页和 RESTful API 的服务器,我使用 SignalR 主动报告网页上的某些状态,以获得更好的用户体验。但是,似乎该服务器中公开的所有 URL 都使用 SignalR 长轮询机制,这使我的 API 客户端连接始终处于活动状态,这会导致一些奇怪的问题。

例如,我有以下 APIS:/A, /B, /C. 我已经设置了以下配置,以便 SignalR 可以工作并从以下位置推送数据/A

app.UseSignalR(routes =>
{
    routes.MapHub<PlatformNotifyHub>(
        "/A", (option) => { option.Transports = Microsoft.AspNetCore.Http.Connections.HttpTransportType.LongPolling; }
    );
});

但似乎 SignalR 使所有 API 都像长轮询一样工作,在我的示例中包括 /B 和 /C。

我该如何解决这个问题,以便 /B 和 /C 可以像普通的 HTTP 一样工作?

标签: c#signalr

解决方案


推荐阅读