我和this guy有同样的问题:我可以通过Azure API管理服务运行我的SignalR中心吗?
我似乎无法在服务中配置它:它只允许我转发HTTP / HTTPS流量。这与论坛帖子中的人的答案相符。 我跟着微软论坛的链接,但似乎问题没有跟进。由于答复是从2014年开始的,我想 - 也许现在可能有了。
答案 0 :(得分:4)
答案 1 :(得分:2)
这取决于不支持websocket,但是如果您使用天蓝色的信号资源,则仅协商请求;这是到中心的基本帖子,必须经过APIM,其余的com(websocket请求)将直接与azure signalr资源联系在一起。
答案 2 :(得分:1)
我们知道,Azure API管理still doesn't support WebSockets
2016年12月6日:
放心,我们仍然牢记这个要求,并且会不断 审查。请保持您的反馈!
如果您使用的是Azure SignalR Service,则可以按照@lazizanie所述的方法进行操作,因为SignalR服务应仅提供协商端点:
假设您在ASP.NET Core 3.1中将集线器命名为 myHub
app.UseEndpoints(endpoints => endpoints.MapHub<Hub>("/myHub"));
然后使用URL=POST /myHub/negotiate
查询参数在API管理negotiateVersion
中进行添加操作
或使用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