我是DotNet的新手。我正在开发一个应用程序,它在dot net core 2.0中完成并使用WebSockets。我已经关注this来获取我的WebSockets并且它正在运行(使用ws://)。
我想用wss保护它。我创建了一个自签名证书并修改了我的URL以使用https,我的REST请求使用https://正在[在另一个应用程序中]。当我遵循相同的步骤并将URL修改为https并尝试使用wss://访问我的WebSocket时,它无效(连接未启用)。
我错过了什么吗?
答案 0 :(得分:1)
我想您缺少端口,dotnet核心https正在与http以外的端口上工作,请在客户端js文件中使用此方法获取正确的url,仅用您自己的路径替换/ ws段
static GetBaseUrl(type) {
const wsScheme = document.location.protocol === "https:" ? "wss" : "ws";
const webScheme = document.location.protocol === "https:" ? "https" : "http";
const port = document.location.port ? (":" + document.location.port) : "";
switch (type) {
case Enums.UrlType.Web:
return webScheme + "://" + document.location.hostname + port;
case Enums.UrlType.WebSocket:
//wss is causing issue on the production
return wsScheme + "://" + document.location.hostname + port + "/ws/";
}
}