如何解决SignalR .Net 客户端无法连接 https
我使用的是 SignalR Core 2.4.1.0。
这是一个 Owin 项目,自托管。
我的配置:
public void Configuration(IAppBuilder app)
{
app.Use(async (ctx,next) =>
{
Console.WriteLine($"Incoming: {ctx.Request.Path}");
await next();
});
app.UseCors(CorsOptions.AllowAll);
var hubConfiguration = new HubConfiguration();
GlobalHost.Configuration.disconnectTimeout = TimeSpan.FromSeconds(10);
hubConfiguration.EnableDetailedErrors = true;
app.MapSignalR(hubConfiguration);
}
我可以很好地从网络浏览器连接到 https://localhost:9999/signalr/hubs。
我也可以在不使用 https 时连接到 SignalR。 (删除 urlacl 后)
我也尝试在 SignalR 之前添加一个中间件来查看传入的请求。
使用 http,中间件显示请求和路径。
使用 https 时,中间件会显示来自 Web 浏览器的请求,但不会显示来自客户端的任何请求。
客户端只是将状态从连接更改为断开连接,没有异常。
我的测试客户端是 .Net 控制台应用程序:
var hub = new HubConnection("https://localhost:9999");
var hubProxy = hub.CreateHubProxy("MyHUB");
hub.Error += (e) =>
{
};
hub.StateChanged += (s) =>
{
Console.WriteLine(s.NewState.ToString());
};
hub.Start();
Console.ReadLine();
我以前使用过 SignalR,但这是我第一次尝试实现 ssl。
总而言之,.Net 客户端将通过 http 而不是 https 连接。
浏览器可以通过 https 连接到 JS 库,但我还没有尝试使用 JS 库。
T.I.A.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。