Asp.net 使用信号器在预定时间向客户端广播消息
我想在特定的服务器时间使用信号器将消息从服务器广播到所有客户端。这个广播消息应该是自动的,所有客户端都在监听服务器方法,一旦我们到达服务器上的预定时间,服务器应该广播消息 但我找不到办法。我成功地从一个客户端调用并向所有客户端广播它,但不是自动地Asp.net 使用信号器在预定时间向客户端广播消息,asp.net,vb.net,signalr,Asp.net,Vb.net,Signalr,我想在特定的服务器时间使用信号器将消息从服务器广播到所有客户端。这个广播消息应该是自动的,所有客户端都在监听服务器方法,一旦我们到达服务器上的预定时间,服务器应该广播消息 但我找不到办法。我成功地从一个客户端调用并向所有客户端广播它,但不是自动地 如何实现这一点。您只需在hub类中添加一个计时器,并按要求的时间间隔向每个客户端广播。首先,您需要某种hub: public class MyHub : Hub {} 然后,您可以通过客户端或任何您想做的事情连接到此中心。然后您需要某种类型的循环类来
如何实现这一点。您只需在hub类中添加一个计时器,并按要求的时间间隔向每个客户端广播。首先,您需要某种hub:
public class MyHub : Hub {}
然后,您可以通过客户端或任何您想做的事情连接到此中心。然后您需要某种类型的循环类来发送到您的中心(您也可以在中心内作为静态计时器执行此操作,但我们将作为单独的类执行此操作)
希望这有帮助 您能否从客户端每隔x秒调用一次并查看广播?不确定是否要使用信号器来执行此操作。实际上,它和信号机本身是正交的。编写按时间间隔运行的代码是您真正需要做的事情。可能有一个.NET库可以用来安排代码在某个时间运行(尽管它永远不会真正是实时的)
public class Looper
{
public Timer Interval
public Looper(TimeSpan interval)
{
Interval = new Timer(Loop, null, TimeSpan.Zero, interval);
}
private static void Loop(object state)
{
GlobalHost.ConnectionManager.GetHubContext<ChatHub>().Clients.All.executeYourMethod();
}
}
public class MyHub : Hub
{
public static Looper MyInterval = new Looper(TimeSpan.FromSeconds(1)); // Send every 1 second
}