【发布时间】:2020-08-05 01:21:19
【问题描述】:
我在一个 .NetCore 项目中有 SignalR 集线器,在另一个 .NetCore 项目中有 SignalR 客户端(以遵守内部基础架构准则)。我正在努力解决如何实现将提供与集线器的连接的客户端代码。我所有的项目都很好,只是缺少连接部分。
客户项目:
public class MyClientController
{
private readonly IHubContext<MyHub, IMyHubClient> _hub;
public MyClientController(IHubContext<MyHub, IMyHubClient> hub)
{
_hub = hub;
// THIS NEVER GETS CALLED/HIT BECAUSE I DON'T KNOW HOW TO REGISTER IT
_hub.Clients.All.BroadcastMessage("Notify", $"Hello everyone. This has been constructed");
}
}
我猜我需要在Startup.Configure() 方法中进行一些配置?我已经安装了客户端包,
编辑:我添加了以下代码,但它抱怨格式(请记住,这不是相对路径,它在另一个服务中)。
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<MyHub>("http://localhost:60913/myHub");
}
我在正确的道路上吗?
【问题讨论】:
-
集线器类和路由必须存在于同一个应用程序上下文中。您不能任意映射到其他一些服务器端点——它会与什么对话?映射意味着“对于这条路径上的所有连接(这个应用程序),用这个集线器类回答”。
-
@NoahStahl...我很确定服务器 A 上的 .Net 客户端可以调用服务器 B 上的 .Net 集线器。除非我失去理智(可能),否则我做了几次同样的事情几年前。
标签: .net-core signalr signalr-hub signalr.client .net-core-3.1