gpt4 book ai didi

signalr - 如何从服务器调用 SignalR 集线器操作

转载 作者:行者123 更新时间:2023-12-02 10:52:53 25 4
gpt4 key购买 nike

SignalR wiki涵盖如何从集线器外部通过集线器进行广播。但是,这会调用客户端操作:

var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
context.Clients.Group(group).addMessage(message);

有没有办法调用集线器操作,最好以强类型的方式?例如

GetHubContext<MyHub>().Invoke(h => h.Say(message))

我知道可以通过使用 .NET 客户端连接到集线器来实现这一点,但是当调用代码与集线器位于同一服务器上时,这似乎是错误的。

最佳答案

聚会有点晚了,但是,是的,有。

stockticker sample nuget package这样做(尽管它并没有完全使用它!):

基本上,您公开服务器端集线器的静态实例以进行调用。

在示例中,模式是:

public class StockTicker
{
// Singleton instance
private readonly static Lazy<StockTicker> _instance = new Lazy<StockTicker>(
() => new StockTicker(GlobalHost.ConnectionManager.GetHubContext<StockTickerHub>().Clients));

...


public static StockTicker Instance
{
get
{
return _instance.Value;
}
}

...

然后就可以从任何地方、几乎任何时间调用它!:

StockTicker.Instance.OpenMarket();

asp.net site 上的一篇博客文章也介绍了相同的示例。

关于signalr - 如何从服务器调用 SignalR 集线器操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14003111/

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