我必须使用ASP .Net Core实施推送通知服务。显而易见的选择是使用SignalR Core。
我们的平台设置使用的是Azure App网关,并且已配置为不允许未经身份验证的请求。
我们已经设置了与SignalR的WebSockets通信。
在后台,SignalR Core遵循以下步骤:
当调查为什么第2步没有将连接升级到WebSocket连接时,我注意到GET请求缺少Authorization标头。显然,AG阻止了此请求,甚至没有进入API。
我手动尝试与邮递员进行“握手”。 以上步骤:
我研究了文档,发现不支持Authorization标头。
有人尝试过任何解决方法吗? hen是@ aspnet / signalr客户端的下一个版本吗?
答案 0 :(得分:0)
所以最终的解决方案是: 在浏览器中是将JWT标头与HTTP 101 UPGRADE一起发送的限制
答案 1 :(得分:-1)
您指定了accessTokenFactory
吗?
let connection = new signalR.HubConnectionBuilder()
.withUrl("/myhub", {
accessTokenFactory: () => {
// Get and return the access token.
// This function can return a JavaScript Promise if asynchronous
// logic is required to retrieve the access token.
}
})
.build();
更多信息here。