8

我和这个人有同样的问题:我可以通过 Azure API 管理服务运行我的 SignalR 集线器吗?

在此处输入图像描述

我似乎无法在服务中配置它:它只允许我转发 HTTP/HTTPS 流量。这与论坛帖子中的人的答案相匹配。我点击链接到微软论坛,但似乎没有跟进这个问题。由于响应是从 2014 年开始的,我想——也许现在有可能。

4

3 回答 3

5

Azure API 管理当前不支持 websocket。请随时提出功能请求: http: //feedback.azure.com/forums/248703-api-management/filters/new

于 2015-06-15T18:00:46.790 回答
3

我们知道,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

于 2020-10-21T23:33:14.770 回答
2

视情况而定,不支持 websocket,但如果您使用 azure signalr 资源,则仅支持协商请求;这是您的集线器的基本帖子,必须通过您的 APIM,其余的 coms(websocket 请求)将直接使用 azure signalr 资源。

于 2020-05-26T19:46:20.187 回答