问题标签 [azure-signalr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
171 浏览

azure - 是否可以将 Azure SignalR 服务与本地 SignalR 结合使用?

我们正在评估 Azure SignalR 服务以可能取代我们当前的本地 SignalR 服务。我们正在使用.Net Core 2.2.402

我们尝试了以下方法:

并定义路由和集线器如下:

理想情况下,我们希望在同一个 Web App 中同时使用两者,但它似乎只适用于其中一个。

0 投票
0 回答
73 浏览

c# - 如何在 Azure Signal R 中向经过身份验证的用户发送通知?

净核心项目。我有 azure AD 身份验证。我有用户上传文件的功能,一旦文件存储在天蓝色存储中,我想通过天蓝色信号 r 通知用户。我已经实现了这个流程,但我只想向上传文件的用户发送通知。目前,如果五个用户正在使用我的应用程序,那么只有一个用户上传了文件,那么我只想向该用户发送通知,而不是向所有经过身份验证的用户发送通知。

这是我的集线器类,在下面的方法中我正在发送通知。

当用户上传文件时,我只想向该用户发送通知,而不是向将使用应用程序的每个人发送通知。这种场景将如何工作我无法理解。当 Web 应用程序启动时,它是否使用唯一的连接 ID 或基于身份验证机制建立与服务器的连接。我完全糊涂了。有人可以帮助我理解这一点吗?任何帮助,将不胜感激。谢谢

0 投票
2 回答
924 浏览

angular - 尝试从 Angular App 连接到 asp.net core signalr hub 时出错

我有一个使用 Microsoft.AspNetCore.SignalR 1.1.0 和 Microsoft.Azure.SignalR 的 asp.net core 3.1 应用程序

在启动信号是这样设置的

在安装的角度应用程序中

npm install @aspnet/signalr

我正在像这样开始连接

当应用程序加载我得到错误。

错误:无法启动连接:错误:客户端支持的传输均不受服务器支持。

更新

更新 2

我也尝试了不同版本的 microsoft-signal,但都给了我同样的错误。安装在服务器端的软件包是最近安装的这个“***Common”只是为了检查。不确定是否需要。 在此处输入图像描述

更新 2 我删除了 Azure Signalr,只在服务器端使用 Microsoft.AspNetCore.SignalR 1.1.0,在客户端使用 @microsoft/signalr@latest。但它是同样的错误。

0 投票
0 回答
442 浏览

c# - asp.net core signalR 自定义身份验证和带有自定义 id 的标记连接

我们正在尝试使用 asp.net core signalR 从服务器更新客户端应用程序。我们的客户端将在首次创建连接时在查询参数中发送 userId 和自定义 Id。在创建连接之前,我们需要检查数据库中的 userId 和自定义 Id 以确保它们是正确的,并且会为无效的 userId&customid 对返回未经授权的响应。稍后我们需要找到通过自定义 Id 搜索的客户端来发送消息。从这里我只能看到 cookie 和承载令牌身份验证。是否有任何手动身份验证和标记连接以进行进一步搜索的方法?

0 投票
0 回答
258 浏览

c# - 协商前的 Azure SignalR 服务用户凭据验证

我们正在尝试将 azure signalR 服务与我们的 azure 函数应用程序连接起来。我们在函数应用程序中有一个协商方法,该方法将SignalRConnectionInfo对象返回给客户端,在此之前,它会调用 signalR 服务。SignalRConnectionInfo我们希望在调用 Azure signalR 服务并返回对象之前进行数据库调用。我们正在使用Microsoft.Azure.WebJobs.Extensions.SignalRService 1.0.0,我们的协商功能如下所示

似乎图书馆正在从标题中获取用户 ID 并传递给 signalR 服务。在让库调用 signalR 服务之前,有什么方法可以执行一些代码?

Microsoft.Azure.WebJobs.Extensions.SignalRService 1.2.0几种方法可以实现这一点,如下所示。

也通过使用基于类的集线器

我想使用库的 1.0.0 来实现类似的功能。有人可以帮忙吗?

0 投票
1 回答
98 浏览

.net-core - 几分钟不活动后 Azure Blazor 应用间歇性错误

我创建了一个 blazor web 应用程序。我已经使用 azure signal r 服务设置了 websocket。我面临 3 个间歇性问题

1.几分钟不活动后,我得到

如果连接未处于“已连接”状态,则无法发送数据。

2.间歇性我收到以下错误

加载资源失败:服务器响应状态为 504(网关超时)

  1. jsruntime 调用后出现另一个错误

错误:由于错误,电路已关闭。

任何帮助将不胜感激

0 投票
1 回答
852 浏览

azure-functions - 将 Microsoft.Azure.WebJobs.Extensions.SignalRService 包添加到 Azure Function 项目会破坏我的依赖注入

我目前正在开发一个 WebApp,其中我有一个与 Azure Cosmos 数据库对话的 Azure Function API 后端。如本文所述,我已将依赖注入添加到我的项目中:https ://docs.microsoft.com/en-us/azure/azure-functions/functions-dotnet-dependency-injection

我的 Startup 类如下所示:

这是我如何在我的函数中使用它的示例:

一切都按预期工作,直到我需要为需要实时数据的特定页面添加 SignalR。在刚刚安装 SignalR 包 Microsoft.Azure.WebJobs.Extensions.SignalRService 之后,我在控制台中注意到了这个错误:

当我尝试访问 API 端点时,我在所有端点上都收到 500 错误,并且在控制台中出现以下错误:

我已将所有软件包更新到最新版本,并尝试重新安装所有软件包,但仍然出现相同的错误。当我删除 SignalR 包时,所有错误都消失了。我已经对此进行了多次测试。

0 投票
1 回答
94 浏览

azure - Azure SignalR All.SendAsync 是向所有客户端发送消息,还是仅向具有给定方法名称的客户端发送消息?

问题:为了尽量减少每条消息的费用,我想按方法名称限制消息。根据下图,我需要知道在以下情况下 SignalR 将向哪些客户端发送消息:

1.) 创建集线器“/MyHub”

2.) 3 个用户(在 Angular 客户端上)使用名为“Post_A”的方法向 Hub 注册

3.) 然后 2 个不同的用户使用名为“Post_B”的方法向同一个 Hub 注册

4.) 如果 API 服务器通过 Clients.All.SendAsync("post_B", dto) 发送更新,它只会发送给用户 3 和 4?还是该消息会发送给所有五个用户?

奖金!如果答案是所有消息都发送给所有用户,是否有不使用组的选项?我不认为每次用户查看新帖子(会有数千个帖子)时,组不会产生大量额外开销。

谢谢!

在此处输入图像描述

0 投票
1 回答
57 浏览

c# - 构造函数中的 Azure SignalR 上下文

有没有办法在 AzureSignalR 进程中获取用户 ID?如下所示,我想获得该用户 ID,如果我不使用 AzureSignalR,我可以通过 HttpContext 获得它,但在 AzureSignalR 的情况下,似乎只有在实际方法本身中我无法获得该 ID,这意味着我无法在我的应用程序中做任何事情因为我需要那个用户 ID

0 投票
1 回答
44 浏览

azure - 注册新的客户端方法后是否应该停止并重新启动 SignalR?或者可以连续调用 .start 吗?

从集线器 SignalR 文档调用客户端方法时说“定义集线器在构建后使用 connection.on 调用的方法,但在开始连接之前”:

在此处输入图像描述

在另一部分,文档只是说这是最佳实践。

所以如果我为给定的客户端/集线器对添加/删除很多方法,我可以启动集线器,添加/删除一个带有 connection.On() 的方法,然后再次调用 .start() 以确保它已注册? 或者我必须关闭()然后调用 start()?