SignalR为所有客户调用asp.net方法?

时间:2013-07-26 23:00:10

标签: javascript asp.net wcf signalr

我制作了一个简单的聊天应用。我对SignalR印象深刻。

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

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

但是,例如,如果其他客户端更改汽车并将更改发送到WCF服务,则服务会将新数据更新到数据库。那么是否可以选择将这些更改显示给使用SignalR的其他人..

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

我听说这是通过使用WCF的Duplex完成的,但我对SignalR可以使用感兴趣吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以,因为您使用的是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
        });