C# 将信号器与CQR和事件源一起使用

C# 将信号器与CQR和事件源一起使用,c#,signalr,cqrs,signalr-hub,event-sourcing,C#,Signalr,Cqrs,Signalr Hub,Event Sourcing,我将CQR与EventSourcing一起使用。 当在所有打开的浏览器中出现特定事件时,我必须使用signar来更新网格。 因此,一旦发生特定事件,我必须将数据推送到所有客户端 当前,当用户手动刷新页面时,将触发查询,这将提取数据,但我必须在不使用Signal手动刷新的情况下提取数据。 我是SignalR的新手,我可以获得实现相同功能的示例代码/参考吗?首先,您必须创建一个Hub类,以便客户端可以连接到 然后,在事件处理程序中执行以下操作: var-hubContext=GlobalHost.C

我将CQR与EventSourcing一起使用。 当在所有打开的浏览器中出现特定事件时,我必须使用signar来更新网格。 因此,一旦发生特定事件,我必须将数据推送到所有客户端

当前,当用户手动刷新页面时,将触发查询,这将提取数据,但我必须在不使用Signal手动刷新的情况下提取数据。
我是SignalR的新手,我可以获得实现相同功能的示例代码/参考吗?

首先,您必须创建一个
Hub
类,以便客户端可以连接到

然后,在事件处理程序中执行以下操作:

var-hubContext=GlobalHost.ConnectionManager.GetHubContext();
hubContext.Clients.All.callJavaScriptFunction(参数)

这样,当事件处理程序被执行时,signer将使用您提供的数据调用您想要的客户机方法

您还必须从客户端创建正确的连接,并定义
callJavaScriptFunction

注意:如果您正在使用依赖项注入,您可能会在
GlobalHost
中看到非常不稳定的行为。如果是这样,请告诉我

希望这有帮助


祝你好运

首先,必须创建一个
Hub
类,以便客户端可以连接到

然后,在事件处理程序中执行以下操作:

var-hubContext=GlobalHost.ConnectionManager.GetHubContext();
hubContext.Clients.All.callJavaScriptFunction(参数)

这样,当事件处理程序被执行时,signer将使用您提供的数据调用您想要的客户机方法

您还必须从客户端创建正确的连接,并定义
callJavaScriptFunction

注意:如果您正在使用依赖项注入,您可能会在
GlobalHost
中看到非常不稳定的行为。如果是这样,请告诉我

希望这有帮助

祝你好运

您可以阅读有关此主题的内容

还有一个关于CQS+ES和信号器的“基本实验”的例子

希望这对您有所帮助

您可以阅读有关此主题的内容

还有一个关于CQS+ES和信号器的“基本实验”的例子


希望这有帮助

我已经看过了您提供的解决方案,但是当我们更改更改描述时,它并没有反映所有打开的浏览器,这是通过signalR预期的。您是对的,但这是DTO映射中的一个错误,与signalR无关。谢谢,当然可以。我尚未管理该事件(这是一个示例应用程序),但您可以在console.log中看到该事件已广播到所有连接的客户端。如果您更新解决方案或告诉我步骤,以便广播所有事件并相应更新所有浏览器上的所有值,我们将不胜感激。我已尝试在现有项目中使用此选项,但我遇到以下异常“[HttpException]:未找到路径';/signer/hubs';的控制器,或者未实现IController。”您似乎错过了。SignalR是作为OWIN模块实现的,因此您需要它来正确启动SignalR我已经看过了您提供的解决方案,但是当我们更改ChangeDescription时,它并没有反映所有打开的浏览器,这是通过SignalR预期的。您是对的,但这是DTO映射中的一个错误,与SignalR无关。谢谢,当然可以。我尚未管理该事件(这是一个示例应用程序),但您可以在console.log中看到该事件已广播到所有连接的客户端。如果您更新解决方案或告诉我步骤,以便广播所有事件并相应更新所有浏览器上的所有值,我们将不胜感激。我已尝试在现有项目中使用此选项,但我遇到以下异常“[HttpException]:未找到路径';/signer/hubs';的控制器,或者未实现IController。”您似乎错过了。SignalR是作为OWIN模块实现的,所以您需要它来正确启动SignalR