我和这个人有同样的问题:我可以通过 Azure API 管理服务运行我的 SignalR 集线器吗?
我似乎无法在服务中配置它:它只允许我转发 HTTP/HTTPS 流量。这与论坛帖子中的人的答案相匹配。我点击链接到微软论坛,但似乎没有跟进这个问题。由于响应是从 2014 年开始的,我想——也许现在有可能。
我和这个人有同样的问题:我可以通过 Azure API 管理服务运行我的 SignalR 集线器吗?
我似乎无法在服务中配置它:它只允许我转发 HTTP/HTTPS 流量。这与论坛帖子中的人的答案相匹配。我点击链接到微软论坛,但似乎没有跟进这个问题。由于响应是从 2014 年开始的,我想——也许现在有可能。
Azure API 管理当前不支持 websocket。请随时提出功能请求: http: //feedback.azure.com/forums/248703-api-management/filters/new
我们知道,Azure API 管理仍然不支持 WebSockets
2016 年 12 月 6 日:
请放心,我们仍会考虑此要求,并会不断对其进行审核。请保持您的反馈!
如果您使用的是Azure SignalR 服务,那么您可以按照@lazizanie 描述的方式进行操作,因为您的 SignalR 服务应该只提供一个协商端点:
假设您在 ASP.NET Core 3.1 中有名为myHub的 Hub
app.UseEndpoints(endpoints => endpoints.MapHub<Hub>("/myHub"));
URL=POST /myHub/negotiate
然后使用negotiateVersion
查询参数在 API 管理中添加操作
或使用 JSON 编辑器并将其添加到paths
"/myHub/negotiate": {
"post": {
"summary": "SignalR negotiate ",
"operationId": "signalr-negotiate",
"parameters": [{
"name": "negotiateVersion",
"in": "query",
"schema": {
"type": ""
}
}],
"responses": {
"200": {
"description": null
}
}
}
}
对于 SignalR 服务的 Backed set 主机,例如https://myHubSignalR.westeurope.cloudapp.azure.com
视情况而定,不支持 websocket,但如果您使用 azure signalr 资源,则仅支持协商请求;这是您的集线器的基本帖子,必须通过您的 APIM,其余的 coms(websocket 请求)将直接使用 azure signalr 资源。