【发布时间】:2018-05-13 22:00:45
【问题描述】:
我试图弄清楚如何从服务器调用强类型集线器上的方法。我正在使用 .Net-Core 2.0
我有一个强类型的集线器界面:
public interface IMessageHub
{
Task Create(Message message);
}
还有一个看起来像这样的集线器:
public class MessageHub: Hub<IMessageHub>
{
public async Task Create(Message message)
{
await Clients.All.Create(message);
}
}
通常在服务器上我可能会像这样将内容推送到客户端:
[Route("api/[controller]")]
public MessagesController : Controller
{
IHubContext<MessagesHub> context;
public MessagesController(IHubContext<MessagesHub> context)
{
this.context = context;
}
public Message CreateMessage(Message message)
{
this.context.Clients.All.InvokeAsync("Create", message);
return message;
}
}
如何在静态类型的集线器上调用方法,或者我对集线器的工作方式有误解?
【问题讨论】:
-
见stackoverflow.com/questions/46904678/…。在解决方案 2 中,您将找到解决方案。
-
@Tester 谢谢我之前尝试过这样做,但我简化了问题,我真正的问题是如果我的客户端接口是通用的,它需要一个 DTO 来推送到客户端怎么办?
标签: c# signalr asp.net-core-2.0