问题标签 [signalr-service]

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 回答
733 浏览

c# - 如何在前端之外触发 SignalR 命令

我觉得我要么错过了 SignalR 服务的重点,要么我的架构错了。

使用 Azure SignalR 服务,我可以让前端到前端的通信正常工作;

启动.cs

集线器.cs

索引.html

这很好,当我需要后端触发消息时,我正在使用以下内容;

函数.cs

虽然这可行,但它让我想知道我是否实施错了,因为这http://localhost:57690/signalr/hubs对任何来源的帖子都是开放的。

在前端,我必须提供Endpoint=https://appName.service.signalr.net;AccessKey=xxxxx设置,但不能从后端提供。

除了安全问题外,这让我质疑 SignalR 服务在这方面的目的。

当然,必须有更好的方法从后端调用信号器。

非常感谢,

汤姆

0 投票
1 回答
287 浏览

signalr - 协商方法中的自定义 SignalR 无服务器访问令牌(JWT)?

是否应该可以在 SignalR Serverless 的协商功能中生成您自己的 JWT,并且在触发来自 EventGrid 的连接事件时将相同的 JWT 传回给您?

当我的 EventGridTrigger 在新连接上执行时,我得到了我设置的 UserId,但 AccessToken 不是我从协商函数返回的那个。

我想在 JWT 中存储额外的信息,以后可以通过 JWT 中的附加声明在 Serverless SignalR Client Connection Connected 事件触发时访问这些信息。

0 投票
0 回答
164 浏览

asp.net-core-signalr - Azure SignalR 服务的授权失败,因为 IServiceCollection 为空

在一个项目中,我有一个可以进行授权的 SignalR 集线器。集线器的简化版本如下所示。

这段代码运行得很好。正在提取访问令牌,可在执行 HTTP 调用时使用。当我们想要使用 Azure SignalR 服务时,就会出现问题。在这种情况下,读取访问令牌不起作用。

我的调查表明,当使用 SignalR 服务时,扩展方法GetTokenAsync(this HttpContext context, string scheme, string tokenName)会抛出 ArgumentNullException,因为它context.RequestServices是 null。

我的授权方式错了吗?有更好的方法吗?为什么 IServiceProvider 为空?

我的服务配置如下所示。

0 投票
1 回答
166 浏览

c# - 如何从连接到 singnalr 服务的 azure 函数调用异步方法,为什么使用 IAsyncCollector 进行返回

我有一个连接到 singnalr 服务的天蓝色函数,为什么 IAsyncCollector 参数用于通过 AddAsync 添加返回。现在我必须调用异步方法来计算结果,但是我需要将方法签名更改为异步,但我还必须将结果更改为在运行时不起作用的任务。

我读到了 IAsyncCollector 收集器是如何工作的,所以 awaitig AddAsync 没有任何意义。但是我怎样才能调用该异步方法或使 IAsyncCollector 在异步方法中工作。我并没有真正找到一些示例,这可能是如何工作的。ms doc中有一些示例,但它们没有返回或不使用异步。

0 投票
1 回答
154 浏览

azure - 无服务器 SignalR 服务 - Azure Functions 提供什么?

假设我正在使用在无服务器模式下运行的 Azure SignalR 服务来实现聊天应用程序。我想知道为什么我们要为此使用 Azure Functions。他们为我们提供了什么?难道我们不能直接自己建立与 SignalR 服务的连接吗?或者说,在我们与 Azure Function 协商访问令牌之后,为什么我们不能只使用我们与该令牌建立的连接来广播消息,而不是依靠额外的 Azure Function 来广播消息?

0 投票
1 回答
555 浏览

asp.net - 以不同模式运行多个集线器的 Azure SignalR 服务

当 SignalR 服务推出时,我们能够在经典模式下运行集线器,这允许从无服务器功能 (REST API) 和 asp.net 核心集线器 (WS) 进行通信。现在根据 azure 门户上的警告,经典模式似乎已经过时,不应该使用。

警告消息说:“经典模式已过时并进行错误修剪。当所有集线器都有集线器服务器时请使用默认模式,如果没有,请使用无服务器模式。如果一些集线器有集线器服务器而其他集线器没有,我们建议创建两个单独的实例,一个是默认的,另一个是无服务器的。”

在我们的场景中,我们必须将 ASP.NET Core 集线器用于服务客户端仪表板(JS + 其他功能)和执行后台处理并将消息发送到 SignalR 服务以在仪表板上看到的无服务器功能。正如警告所暗示的那样,此设置需要在默认模式下运行一个集线器,在无服务器模式下运行一个集线器,假设这些功能将与无服务器通信并且 ASP.NET 核心与默认模式集线器通信。

那么主要的问题是,两个 SignalR 服务中心之间的通信将如何发生?我们需要来自无服务器模式的消息出现在默认模式集线器客户端上。这甚至是一个有效的场景,还是我们应该将所有内容转移到一种模式或另一种模式?

我在微软官方网站上找不到任何文档,任何解释设置外观和工作方式的链接都非常感谢。

0 投票
1 回答
501 浏览

node.js - Azure SignalR 服务上游未将消息传递到 Azure 函数应用

我在 Azure 中设置了 SignalR 服务帐户。

我已将其设置为无服务器。

我已将上游 URL 设置为https://THE-NAME-OF-MY-FUNC-APP.azurewebsites.net/runtime/webhooks/signalr?code=THE-DEFAULT-KEY-FROM-FUNC-APP-APPKEYS_HOST_DEFAULT

这记录在此处,在规则设置下:https ://docs.microsoft.com/en-us/azure/azure-signalr/concept-upstream#rule-settings

我在 Node/TypeScript 中创建了一个 AZ Functions 应用程序,其中我有一个具有 SignalRTrigger 输入和 SignalRMessages 输出的函数。考虑以下函数。

函数.js

和 index.js

当我在 Vue 应用程序中使用 @aspnet/signalr 客户端时,我可以连接到 SignalR 集线器。

当我尝试使用时,myConnection.send('heartbeat', '123')我希望上述函数被调用。

这没有发生。我似乎无法触发该功能。

有人可以帮忙吗?

0 投票
0 回答
30 浏览

c# - Sendmessage 未发送到 SignalRMessage.GroupName 中声明的组

将消息发送到 signalrhub 中的组时,我没有收到任何组消息。堆:

  • 使用 axios 库的 JS 客户端
  • 天蓝色的功能
  • 信号服务

基于这篇文章和项目: https ://docs.microsoft.com/en-us/azure/azure-signalr/signalr-quickstart-azure-functions-csharp

添加此功能以尝试加入群组并调用 sendmessage 以发送到 azure 功能:

组函数在这里定义:

一切似乎都工作正常,直到我尝试调用“SendMessage”并将 GroupName 设置为该值。我注释掉 SignalRMessage 对象中的 GroupName 属性,它工作正常并加载到我的所有客户端。

想要一些故障排除帮助或指向定义如何使用 azure 函数、SignalR 服务和客户端的更简单文章的链接。我的最终目标是为我的应用程序实现一个 xamarin 表单客户端库。我已经在网上搜索了信号器服务如何在 azure 函数上工作的点点滴滴,这很困难。

0 投票
2 回答
585 浏览

azure-functions - 在哪里可以找到 .Net 5.0 C# dotnet-isolated 上 Azure 函数的 SignalR 服务输出绑定的文档

我正在构建一个基于无服务器架构的应用程序。我卡住的部分包括:SPA Web UI、C# .Net 5.0 隔离进程功能(dotnet-isolated)、Azure SignalR 服务(无服务器模式)。

有很多文档和示例如何使用我提到的相同堆栈构建不同的实时无服务器应用程序,但使用 .Net 3.1 函数。几乎没有关于 SignalR 触发的 .Net 5.0 隔离进程函数的 SignalR 输出绑定的信息。

唯一有用的文档如下: C# 隔离进程:https : //docs.microsoft.com/en-us/azure/azure-functions/dotnet-isolated-process-guide SignalR 扩展:https://github。 com/Azure/azure-functions-dotnet-worker/tree/main/samples/Extensions/SignalR

因此,那里涵盖了基础知识。但是,没有关于一些高级 SignalR 输出绑定的信息,这将有助于构建更多功能,例如:将用户添加到组,从组中删除用户。等等。

到目前为止,我能够构建和运行:Negotiate、SendMessage (to all、user or group)、Connected、Disconnected

但我正在努力解决 AddToGroup 部分......这是我的代码:

在 Azure 中为 SignalR 服务配置 UpStream 设置后,我的函数被 Web UI 中的 javascript 成功触发

但是我得到了错误,这并不奇怪,因为不清楚如何精确绑定:

我错过了什么?在哪里可以找到文档?

多谢你们!

0 投票
0 回答
124 浏览

json - 有没有办法为 Azure Function SignalR 服务绑定 (Microsoft.Azure.WebJobs.Extensions.SignalRService) 自定义 json 设置?

我正在使用SignalR ServiceAzure Function 的输出绑定。当我向消息添加一些参数时,它正在由 library 序列化Microsoft.Azure.WebJobs.Extensions.SignalRService。可以使用System.Text.JsonNewtonsoft.Json进行序列化。

我无法弄清楚如何为序列化提供自定义设置(我希望将枚举转换为字符串而不是数字)与任一序列化。

有没有办法做到这一点?

我也尝试过序列化自己,但是库会转义所有内容以确保有效的 json,这也不是很理想。