集线器提供比PersistentConnection更高级别的RPC框架。如果您要在服务器和客户端之间发送不同类型的消息,则建议使用集线器,这样您就不必自己进行调度。
访问 Azure 应用服务上托管的 SignalR 中心时出现 CORS 错误
我有一个在 Azure 应用服务实例上运行的 .Net Core 应用程序。该应用程序是一个 WebAPI,也有一个 SignalR Hub。后端和集线器都由
ASP.NET Core 8.0 SignalR:连接成功但客户端未收到通知
我正在开发 ASP.NET Core 8.0 Web API 应用程序,并且我第一次尝试实现 SignalR 来实现实时通知。尽管成功连接到 SignalR 集线器,但我...
我的 .NET 应用程序中的 SignalR 遇到问题。 将前端连接到套接字有两个步骤: 1º 发送 HTTP POST 请求与 t...进行协商(因为我不会跳过协商)
在azure服务总线的ProcessErrorAsync处理程序中获取用户名
我有以下系统组件: Azure 服务总线 IHostedService 作为监听 azure 服务总线的后台“线程” SignalR 主机在
在Windows服务中创建SignalR Core并在本地C#应用程序中连接它
我已在 Windows 服务中成功创建 SignalR 连接。它工作正常,但是当我尝试使用 Microsoft.AspDotNet 通过其他 Windows 应用程序 (.NET 4.8) 连接到它时。
我从文档中看到Hub类位于包Microsoft.AspNetCore.SignalR中。但是,当我在 NuGet 中查看该包时,它说它已被弃用。 我看到 Hub 级 co...
.NET8 升级中 SignalRTrigger 函数出现空结果问题
您现有的项目使用什么版本的.NET? .NET 6 您尝试以哪个版本的 .NET 为目标? .NET 8 描述 你好, 我想提出 SignalRTrigger 解决方案的问题......
Azure 函数中的无服务器 SignalR:对 InvokeAsync 的调用在成功 StartAsync 后挂起
我正在尝试使用简单的无服务器集线器设置 Azure Functions,我将用它来通知 Web 客户端。 FunctionApp 包含 serverlesshub(下面称为 MyHub)以及客户端(其中...
我在使用 signalR hub 时遇到一些问题,我需要调用某种方法 每当我收到来自外部服务的请求时,都会从 signalR 集线器发出。 每当我收到这样的“要求...
我们使用 WSO2 API Manager 版本 4.0.0 来公开在 .NET Core 中实现的 SignalR 服务。前端是用 Angular 构建的。 以下是我们配置 API 的方式。 WebSocket API: WSO2 恩...
我正在尝试使用在不同文件夹中提供服务的 Apache 服务器来发布/部署 blazor 交互式服务器应用程序。 因此,我尝试将应用程序移动到特定文件夹。 为了...
如何从 SignalR Hub 获取 Azure Entra 用户 ID?
我正在开发一种“通知观察者”服务,该服务使用 SignalR 从 Angular 应用程序收集连接的用户(该应用程序使用 Azure Entra 作为身份验证)。这个“观察者...
SignalR - 如何使用“IUserIdProvider”获取“ConnectionId”
当我使用IUserIdProvider时可以映射ConnectionId吗? 此变量 Clients.User(userIdTo) 的类型为“UserProxy” 知道如何获得红色圆圈中的 ConnectionID 吗?...
401,在 API 连接上使用 Blazor WASM + SignalR
服务器 A 托管 Blazor WASM 应用程序。 服务器 B 托管一个 API。 所有身份验证均为 Windows 身份验证。 API 向 WASM 应用程序提供数据,一切都按预期进行。但不起作用的是标志...
如何在.Net 6 中使用 SignalR 和 Claudia 传输 Claude 响应
我正在尝试使用 Claude 和 SignalR 建立聊天。我们使用的是 .Net 6,目前无法升级到 .Net 8。我发现 Claudia 应该支持 .Net 6,但示例代码...
集线器无法通过 SignalR Core 中的事件调用客户端上的方法
我使用 ASP.Net Core 获得了一个基本的 Web 应用程序,在其中初始化了我的 SignalR 集线器。 中心看起来像这样: 内部类 SignalRTransceiverServer : Hub 我使用 ASP.Net Core 获得了一个基本的 Web 应用程序,我在其中初始化了我的 SignalR 集线器。 集线器看起来像这样: internal class SignalRTransceiverServer : Hub<ITransceiver<DataRecord, List<DataRecord>>>, ITransmitter<DataRecord> { public async Task SendDataPackage(DataRecord package) { Console.WriteLine(package); try { await Clients.All.GetDataPackage(new List<DataRecord>() { package }); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } ITransceiver 接口如下所示: public interface ITransceiver<T, R> : IReceiver<R>, ITransmitter<T> { } 虽然 IReceiver 有一个事件,应该被触发(对于客户端应用程序),但当新数据到达时: public interface IReceiver<T> { /// <summary> /// Gets a data package of <typeparamref name="T"/>. The parameter is for API's, which pass the arguments directly /// (via RPC e.g.) into the method. Invokes the DataReceived event. /// </summary> /// <param name="package">An optional package parameter, if the underlaying mechanism needs to pass the data directly into /// the function.</param> public Task GetDataPackage(T? package); public event EventHandler<T> DataReceived; } 现在,当我尝试通过集线器上的 RPC 调用 GetDataPackage 方法时,它会抛出以下错误: Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher[8] Failed to invoke hub method 'SendDataPackage'. System.InvalidOperationException: Type must not contain events. at Microsoft.AspNetCore.SignalR.Internal.TypedClientBuilder`1.VerifyInterface(Type interfaceType) at Microsoft.AspNetCore.SignalR.Internal.TypedClientBuilder`1.VerifyInterface(Type interfaceType) at Microsoft.AspNetCore.SignalR.Internal.TypedClientBuilder`1.GenerateClientBuilder() at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode) --- End of stack trace from previous location --- at System.Lazy`1.CreateValue() at Microsoft.AspNetCore.SignalR.Internal.TypedClientBuilder`1.Build(IClientProxy proxy) at TestHub.SignalRTransceiverServer.SendDataPackage(DataRecord package) in D:\dat.eE\Praktikum.RH\TestHub\SignalRTransceiverServer.cs:line 25 at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.ExecuteMethod(ObjectMethodExecutor methodExecutor, Hub hub, Object[] arguments) at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.<Invoke>g__ExecuteInvocation|18_0(DefaultHubDispatcher`1 dispatcher, ObjectMethodExecutor methodExecutor, THub hub, Object[] arguments, AsyncServiceScope scope, IHubActivator`1 hubActivator, HubConnectionContext connection, HubMethodInvocationMessage hubMethodInvocationMessage, Boolean isStreamCall) 我的意思是我理解这个错误(只需删除 IReceiver 中的事件),但为什么 SignalR Core 不允许目标类型中的事件?如果可能的话,我怎样才能绕过它,同时仍然使用事件? 我找到了最简单的解决方法:只需使用普通的 Hub 类即可。 代替: internal class SignalRTransceiverServer : Hub<ITransceiver<DataRecord, List<DataRecord>>>, ITransmitter<DataRecord> 以及具体的RPC调用与具体方法: await Clients.All.GetDataPackage(new List<DataRecord>() { package }); 我现在用: internal class SignalRTransceiverServer : Hub, ITransmitter<DataRecord> 这会产生这样的 RPC: await Clients.All.SendAsync("GetDataPackage", new List<DataRecord>() { package }); 仍然有一个问题,为什么会这样。
.NET 8 SignalR 中是否有相当于 HubName 的属性?
我有一个 SignalR Hub (.NET 8),为了与客户端上的代理正常工作,我需要使用类似以前版本中的 [HubName("hubname")] 将其名称设置为小写。 ..
SignalR:如果没有客户端方法,则不会调用 Hub OnConnected
我正在用 SignalR 编写一个游戏。这个想法是,你连接你的笔记本电脑,它将用作“显示器”,然后你连接你的智能手机,它将用作“操纵杆”。恩...
我想实现 SignalR 日志记录,服务器将定期 ping 所有客户端以获取任何累积的日志。 微软对此并不清楚:文档 我不明白的是如果有...
Serverless signalR:将用户添加到组并在上游同时向组发送消息
我写了下面的代码,希望将用户添加到组中,同时向该用户所在的组发送消息。我可以看到我的 Az 上的 signalR 刀片建立的连接...