我可以通过Azure API管理运行SignalR中心吗?

wrrgggsh  于 2023-03-13  发布在  其他
关注(0)|答案(4)|浏览(96)

我的问题和this guy一样:我可以通过Azure API管理服务运行SignalR集线器吗?

我似乎无法在服务中配置它:它只允许我转发HTTP/HTTPS流量。这与论坛帖子中的人的答案相匹配。我沿着链接进入微软论坛,但似乎没有跟进这个问题。由于回复是2014年的,我想-也许现在可以了。

brc7rcf0

brc7rcf01#

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

cgvd09ve

cgvd09ve2#

正如我们所知,Azure API管理仍然不支持WebSocket
二〇一六年十二月六日:
请放心,我们仍然牢记这一要求,并不断审查它。请保持您的反馈来!
如果你使用的是Azure SignalR Service,那么你可以按照@lazizanie描述的方法操作,因为你的SignalR服务应该只提供一个协商端点:

假设您在ASP.NET Core 3.1中有一个名为myHub的Hub

app.UseEndpoints(endpoints => endpoints.MapHub<Hub>("/myHub"));

然后使用negotiateVersion查询参数在API管理URL=POST /myHub/negotiate中添加操作
或者使用JSON编辑器添加到paths

"/myHub/negotiate": {
    "post": {
        "summary": "SignalR negotiate ",
        "operationId": "signalr-negotiate",
        "parameters": [{
            "name": "negotiateVersion",
            "in": "query",
            "schema": {
                "type": ""
            }
        }],
        "responses": {
            "200": {
                "description": null
            }
        }
    }
}

对于SignalR服务的备份集主机,如https://myHubSignalR.westeurope.cloudapp.azure.com

rnmwe5a2

rnmwe5a23#

这取决于,websockets不被支持,但是如果你使用azure信号资源,只有协商请求;这是一个基本的职位到您的集线器,必须通过您的APIM,其余的com(WebSocket请求)将直接与azure signalr资源。

hsvhsicv

hsvhsicv4#

API管理现在支持Web套接字。
1.导航到Azure门户中的API管理示例
1.添加API
1.在定义新API下,选择WebSocket
1.在对话框中,选择“完整”并填写所需的表单字段
1.单击创建
https://learn.microsoft.com/en-us/azure/api-management/websocket-api?tabs=portal
(使用层尚不支持WebSocket API。

相关问题