gpt4 book ai didi

.net - 类库中的 SignalR 集线器?这是好主意还是坏主意?

转载 作者:行者123 更新时间:2023-12-02 05:17:33 25 4
gpt4 key购买 nike

我对 SignalR 还很陌生。我开始编写一个集线器并将该逻辑放入类库中。

这就是我想要实现的目标:

我有一个“预处理器”服务,它会启动并从外部源预取许多对象/文档/等,并将它们放入缓存中。当所有项目都已预取时,我正在使用集线器与客户端进行通信。

我们还有几个客户消费者。其中包括:

  • 典型的 MVC 应用/项目
  • 我们用于快速测试的控制台应用
  • 一个 webapi 和一个 WCF/SOAP 项目,用于向外部方公开我们的服务
  • 单元测试项目

问题

通过将集线器放入类库中,我使所有下游消费者(包括其他类库)都依赖于 OWIN...并且我现在需要我的启动类(和/或应用程序配置设置来告诉 Owin以免使用它)。

public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}

<add key="owin:AutomaticAppStartup " value="false" />

架构?

这对我来说“闻起来”。也许 SignalR 集线器不应该位于类库中?如果是这样的话,什么是更好的设计呢?例如集线器有自己的 WebApi 服务吗?以及该服务的代理?这样,我的预处理器逻辑(包含在类库中)就可以调用 Hub?

如有建议,我们将不胜感激。

最佳答案

您肯定可以将 SignalR 的内容放在类库中,但在您的情况下,它可能应该与发生预处理的库不同。 SignalR 将是纯粹的基础设施,不会发生任何业务逻辑,只会发生消息传递。您可以在中间定义一些接口(interface),并将基础设施插入到您的预处理接口(interface)中。这样,对 SignalR 的依赖就位于接口(interface)后面,您的代码是干净的,并且对 Owin 的依赖被隔离到基础设施中。

关于.net - 类库中的 SignalR 集线器?这是好主意还是坏主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24000046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com