【问题标题】:Accidently Sending Multiple Messages with SignalR使用 SignalR 意外发送多条消息
【发布时间】:2012-07-31 13:18:04
【问题描述】:

我是 SignalR 的新手,但我理解这个概念。

我的目标是公开 Web 服务,当调用它时会更新所有连接的客户端。我已经构建了一个小的淘汰赛 js 来连接到集线器,并且效果很好。当我点击我的开始按钮时,它会向每个连接的客户端发送一条消息,就像它应该的那样。这是背景代码。

枢纽:

[HubName("realTimeData")]
public class RealTimeDataHub : Hub
{
    public void UpdateFlash(string message)
    {
        Clients.flashUpdated(message);
    }
    public void clear()
    {
        Clients.cleared();
    }
}

JS:

function viewModel(){
    var self = this;

    self.messages = ko.observableArray([]);

    self.hub = $.connection.realTimeData;

    self.hub.flashUpdated = function (m) {
        self.messages.push(new message(m));
    };
    self.hub.cleared = function () {
        self.messages.removeAll();
    };
    self.Start = function () {          
        self.hub.updateFlash("Updated Flashed from client");
    };
    self.Stop = function () {
        self.hub.clear();
    };
    $.connection.hub.start();
}

ko.applyBindings(new viewModel());

MVC API:

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;
    }
}

问题:

当我从我的控制器(Home/Update,还不是真正的 API)调用“更新”方法时,它会为每个连接的客户端发送一个信号。因此,如果我连接了 2 个客户端,我将收到 2 条“来自服务器”的消息到每个客户端,依此类推。我只想要那个……

有什么建议吗?任何事情都值得赞赏

谢谢,

马特

【问题讨论】:

    标签: c# signalr


    【解决方案1】:

    解决办法:

    必须导入'使用 SignalR.Client;'

    public ActionResult Update()
    {
        hub.Invoke("UpdateFlash", "From the Home Controller");
        //GetClients().updateFlash("From server");
        return Json(new { result = "ok" }, JsonRequestBehavior.AllowGet);
    }
    

    这是我找到解决方案的地方:

    https://github.com/SignalR/SignalR/wiki/SignalR-Client-Hubs

    我希望这可以帮助别人。

    马特

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 2013-08-16
      相关资源
      最近更新 更多