C# 使用信号器意外发送多条消息
我是新来的信号员,但我理解这个概念 我的目标是公开web服务,调用web服务时将更新所有连接的客户端。我已经构建了一个小的knockout js来连接到hub,并且工作得很好。当我点击我的开始按钮时,它会像预期的那样向每个连接的客户端发送一条消息。以下是背景代码 枢纽: JS: MVC API:C# 使用信号器意外发送多条消息,c#,signalr,C#,Signalr,我是新来的信号员,但我理解这个概念 我的目标是公开web服务,调用web服务时将更新所有连接的客户端。我已经构建了一个小的knockout js来连接到hub,并且工作得很好。当我点击我的开始按钮时,它会像预期的那样向每个连接的客户端发送一条消息。以下是背景代码 枢纽: JS: MVC API: public class HomeController : Controller { public ActionResult Update() { GetClients(
public class HomeController : Controller
{
public ActionResult Update()
{
GetClients().updateFlash("From server");
return Json(new { result = "ok" }, JsonRequestBehavior.AllowGet);
}
private static dynamic GetClients()
{
return GlobalHost.ConnectionManager.GetHubContext<RealTimeData.Hubs.RealTimeDataHub>().Clients;
}
}
公共类HomeController:控制器
{
公共行动结果更新()
{
GetClients().updateFlash(“来自服务器”);
返回Json(新的{result=“ok”},JsonRequestBehavior.AllowGet);
}
私有静态动态GetClients()
{
返回GlobalHost.ConnectionManager.GetHubContext().Clients;
}
}
问题是:
当我从控制器(Home/Update,还不是真正的API)调用“Update”方法时,它会为每个连接的客户端发送一个信号。所以,如果我连接了两个客户端,我将向每个客户端发送两条“来自服务器”的消息,以此类推。我只想要一个
有什么建议吗?任何事都值得感激
谢谢
马特解决方案:
必须导入“using Signal.Client;”
public ActionResult Update()
{
hub.Invoke("UpdateFlash", "From the Home Controller");
//GetClients().updateFlash("From server");
return Json(new { result = "ok" }, JsonRequestBehavior.AllowGet);
}
以下是我找到解决方案的地方:
我希望这能帮助一些人
马特
public class HomeController : Controller
{
public ActionResult Update()
{
GetClients().updateFlash("From server");
return Json(new { result = "ok" }, JsonRequestBehavior.AllowGet);
}
private static dynamic GetClients()
{
return GlobalHost.ConnectionManager.GetHubContext<RealTimeData.Hubs.RealTimeDataHub>().Clients;
}
}
public ActionResult Update()
{
hub.Invoke("UpdateFlash", "From the Home Controller");
//GetClients().updateFlash("From server");
return Json(new { result = "ok" }, JsonRequestBehavior.AllowGet);
}