【问题标题】:SignalR call asp.net method for all clients?SignalR 为所有客户端调用 asp.net 方法?
【发布时间】:2013-07-26 23:00:09
【问题描述】:

我做了一个简单的聊天应用。 signalR 给我留下了深刻的印象。

我的问题是,这项技术是否让我们能够调用 asp.net 服务器端方法(例如 aspx.cs 后端中的方法)?

让我解释一下我在说什么。我有一个 WCF 服务,它从数据库中检索数据并将其发送给客户端。在客户端,有一个 getCars() 方法,它在 page_Load 上调用,并向用户显示所有汽车。

但是例如,如果其他客户端更改了汽车并将更改发送到 WCF 服务,则服务会将新数据更新到数据库。那么是否有一个选项可以通过 SignalR 向其他人显示这些更改..

像正常的 SignalR sendMessage 一样工作.. 一些客户端向服务器发送消息,服务器向所有客户端添加消息,是否有可能使用 ASP.NET 方法对所有具有 signalR 的客户端(当一个客户端调用更改数据库再次为所有客户端调用该方法)?

我听说这是通过 Duplex with WCF 完成的,但我感兴趣的是 SignalR 是否可行?

【问题讨论】:

    标签: javascript asp.net wcf signalr


    【解决方案1】:

    可以,因为您使用的是 JavaScript 客户端,所以当客户端进行更改时,您会调用服务器

    commandHubProxy.invoke('InformClients').done(function (result) {
                //Call Succeeded
            }).fail(function (error) {
                //log error
            });
    

    在服务器上,该方法会通知其余的客户端

        public void InformClients(string text)
        {
            Clients.Others.DataUpdated();
        }
    

    然后在其他客户端上,您可以执行 Ajax 请求来刷新数据

    commandHubProxy.on('DataUpdated', function () {
                //Refresh the data or inform the user
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-08
      相关资源
      最近更新 更多