ASP.NET SignalR是ASP.NET开发人员的一个库,它使得为应用程序添加实时Web功能变得异常简单。什么是“实时网络”功能?它能够让您的服务器端代码实时地将内容推送到连接的客户端。
我在 Web API 中使用 Signalr。如何对其进行集成测试?我不想模拟集线器,我想处理连接的真实实例并检查结果。 目前我有类似...
Blazor 托管 WebAssembly 在 kubernetes 中具有多个副本,导致信号器集线器问题
我有一个在 .Net8 下用 Blazor WebAssembly 编写的应用程序。该应用程序是托管模型,这意味着有一个客户端和服务器项目。使用 Web api 进行相互通信。该应用程序就是我们...
我被这个问题困扰了好几天,并且一直在阅读 https://learn.microsoft.com/en-us/aspnet/core/signalr/hubs?view=aspnetcore-8.0 上的实现,当然它可以...
如何使用长轮询机制处理 SignalR 应用程序,以使用 Jmeter 进行负载测试
我们需要在少数组件中使用 SignalR 对 Web 应用程序进行负载测试,传输模式为长轮询。我的脚本在连接步骤中挂起。连接步骤是 GET- /signalr/connect?transport=
我有一个与 Azure SignalR 服务通信的网站的工作实现。我创建了一个应用程序,我想将其与相同的 SignalR 服务集成,但我无法...
使用 SignalR 与 ASP.NET Core 和 Angular 10 在网站中实现实时聊天
我目前正在致力于将实时聊天功能集成到我们的产品网站中。我使用的技术堆栈包括后端使用 ASP.NET Core 的 SignalR 和前端使用 Angular 10...
ASP.NET Blazor 使用特定用户的 ASPNerUserID 更新 UI
SO中只有1个类似的问题,并且没有任何答案,只有意见和评论。请研究下图,它或多或少地显示了我的问题。在图片下面,我进一步解释...
集线器无法通过 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 }); 仍然有一个问题,为什么会这样。
我目前正在通过 EasyNetQ 使用 RabbitMQ 在 Windows 服务和众多客户端之间进行通信。这些通信是来自客户端的请求和向所有
我正在开发一个使用 SignalR 的 ASP.NET MVC 应用程序,它实现了 WhatsApp 聊天,用户可以从应用程序向 WhatsApp 号码发送消息,然后可以从那里回复消息,从而显示...
Flutter 未从 C# Web API 接收 SignalR 消息
我有一个 C# 后端应用程序和一个 Flutter 前端。在我的后端,我有一个 SignalR 服务,我想在我的 Flutter 应用程序中使用它。我的后端设置: 公共类 DangerReportHub :中心 { 公开为...
.NET 8 SignalR 中是否有相当于 HubName 的属性?
我有一个 SignalR Hub (.NET 8),为了与客户端上的代理正常工作,我需要使用类似以前版本中的 [HubName("hubname")] 将其名称设置为小写。 ..
范围后台服务对于基于客户端请求的长时间运行任务来说是不错的选择吗?
我正在构建一个 ASP.NET Core 应用程序,需要通过 SignalR 中心管理由客户端请求启动的长时间运行的任务(任务运行直到客户端关闭浏览器或检测到交互性)。我
在 blazor 中,我使用 NavigationManager.NavigateTo(url) 来更改窗口位置,但是如何使用它来打开具有指定 URL 的新选项卡,而无需在 OnAfterRenderAsync() 上调用 JS
我在 Blazor 中使用 .Net 8.0。 我有一个服务器项目和一个客户端项目。 服务器通过控制器方法接收通知,这应该调用 signalR 集线器上的方法来“推送”a
OnConnectedAsync 中的 ASP.NET Core SignalR 依赖注入
我创建了一个像这样的服务:builder.Services.AddSingleton();并可以在我的 Hub 中创建新方法并将其作为参数,如下所示: 公共...
我正在开发一个新的网络应用程序,使用户能够将大文件上传到服务器。这不是生产级应用程序。 我为此使用 blazor 服务器端模式,但我无法弄清楚...
如何使用 .NET 8 中的 SignalR 从 ASP.NET Core 后台服务向 Blazor wasm 客户端中的特定用户发送实时通知
我是 SignalR 新手,第一次学习和练习。我正在尝试从 ASP.NET Core 中的后台服务向 Blazor WASM 应用程序中的特定用户发送实时通知我们...
通过无服务器 Azure SignalR 触发函数向用户发送消息,同时将有效负载存储到 Azure 存储帐户表
我有以下 C# 代码,用于向用户发送消息: [函数(名称(SendToUser))] [SignalROutput(HubName = "聊天", ConnectionStringSetting = "SignalRConnection")] 公开
我正在使用React和websocket编写一个实时应用程序,有一个问题,我从websocket获取数据,这里没有问题,但是当它滚动时,我编写了以下代码来获取...